Ошибка индекса массива в приложении Rails, в представлении, не распознает переменную, используемую в качестве индекса - PullRequest
0 голосов
/ 06 ноября 2018

Я работаю на эстакаде и записываю рабочие часы в базу данных.

Вот что я сделал в контроллере:

[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, я получу воскресенье для каждой строки таблицы, поэтому массив работает правильно.

...