2015-09-12 2 views
1

Я перебираю массив дней недели (sun-mon). Я хотел бы, чтобы сэкономить время на каждый день в отдельном массиве называется delivery_times:Хранение Time_Select в Array Rails

просмотров/заказы/_form.html.erb

<% Date::DAYNAMES.each_with_index do |day, index| %> 
     <div class="field"> 
      <%= day %><br> 
      <%= check_box_tag "delivery_days[]", index %> 
     </div> 

     <div class="field"> 
      <%= f.label :time %><br> 
      <%= f.time_select :time, "delivery_times[]" => :time %> 
     </div> 
    <% end %> 

Контроллер

def create 
    @times = params[:delivery_times] 
    params[:delivery_days].each do |day, time| 
     @order = Order.create(order_params.merge({:day => day}, {:time => @times[index]})) 
    end 
     redirect_to @order, notice: 'Order was successfully created.' 
    end 

В настоящее время delivery_days сохраняется правильно , но delivery_times не сохраняет время. Я пробовал найти time_select_tag, но его не существует. Как сохранить время в массиве?

+0

ли вы имеете в виду, что это не сохраняются в базе данных? Вы используете рельсы 4? Можете ли вы показать нам соответствующий код в вашем контроллере? Возможно, атрибут там не разрешен. – panmari

+0

@panmari Просто добавил контроллер. 'params [: delivery_times]' не возвращает массив с данными. И да, используя рельсы 4 – Onichan

+0

Можете ли вы показать нам консоль рельсов, каковы параметры, которые достигают вашего сервера? Также было бы интересно увидеть метод 'order_params' от нижней части вашего контроллера (сильные параметры google в рельсах, если вы не знаете, что делает этот метод). – panmari

ответ

1

Вы можете использовать ActionViewtime_tag, docs

<%= f.time_field :time, "delivery_times" => :time %> 
+0

Я пробовал это. Я получаю эту ошибку: 'undefined method' time 'для # ' – Onichan

+0

извините его' time_field'. Я обновил ответ –

+0

Но 'time_field' не позволяет пользователю выбирать время. Я хотел бы, чтобы пользователь выбирал время (не вводил пользовательское время) – Onichan

Смежные вопросы