Рельсы 2.3.5
У меня проблема, когда выбор формы работает правильно, за исключением того, что при отправке формы я получаю нулевую ошибку в отношении используемого массива. Я не понимаю, как работает тег Select и генерирует правильный HTML, но также выдает нулевую ошибку для массива при отправке формы. Кроме того, если я вынимаю логику из контроллера и вставляю ее непосредственно в партиал, она работает нормально. Спасибо за любую помощь.
В контроллере у меня есть этот код в «новом» методе:
@directories = Directory.find(:all, :conditions => {:id => session[:directories_with_view_access]})
@directories.collect! {|u| [u.name, u.id]}
Внутри партиала для "нового" представления у меня есть этот код:
<%= f.select(:directory_id, @directories, :prompt => 'Select') %>
Который отображает этот HTML-код:
<select id="card_directory_id" name="contact[directory_id]"><option value="">Select</option>
<option value="2">dir_test_1</option>
<option value="4">dir_test_2</option>
<option value="6">dir_test_3</option>
Проблема в том, что при отправке формы я получаю следующую ошибку:
У вас есть нулевой объект, когда вы этого не сделали
ожидайте этого! Вы могли ожидать
экземпляр массива. Произошла ошибка
при оценке nil.inject
Если я возьму логику из контроллера и вставлю ее в частичное, все будет нормально работать:
<%= f.select(:directory_id, Directory.find(:all, :conditions => {:id => session[:directories_with_view_access]}).collect {|u| [u.name, u.id]}, :prompt => 'Select') %>