Я работаю на эстакаде и записываю рабочие часы в базу данных.
Вот что я сделал в контроллере:
[0,1,2,3,4,5,6].each do |day|
@biz.hours.build :day => day
end
Я определил массив в модели приложения:
class ApplicationRecord < ActiveRecord::Base
self.abstract_class = true
DAY_NAMES = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday',
'Friday', 'Saturday']
end
Контроллер работает как обычно для записи индекса дня в базе данных, но у меня возникают проблемы с представлением. Это мой взгляд:
<%= f.fields_for :hours do |builder| %>
<tbody>
<td class="oraritabtit"> <%= builder.label :day, ApplicationRecord::DAY_NAMES[day] %> <%=
builder.hidden_field :day %> </td>
<td class="oraritabtit"> <%= builder.time_select :open_time,
:minute_step => 15 %> </td>
<td class="oraritabtit"> <%= builder.time_select
:close_time, :minute_step => 15 %> </td>
</tbody>
<% end %>
В первом столбце должны отображаться дни недели, но я получаю эту ошибку:
undefined local variable or method `day' for #<#<Class:0x0000000007ca7068>:0x000000000d9517f0>
Проблема с переменной 'day' внутри скобок массива:
ApplicationRecord :: DAY_NAMES [день]
Если я попытаюсь заменить переменную в скобках, например, на 0, я получу воскресенье для каждой строки таблицы, поэтому массив работает правильно.