У меня есть форма, в которой пользователи могут добавлять свои рабочие часы, просматривать их и редактировать (все на одной странице). При добавлении рабочего времени пользователь должен выбрать проект из выпадающего списка. В случае, если действие добавляет новую запись часа, раскрывающееся поле должно оставаться пустым (не выбрано), в случае, если действие редактируется, необходимо выбрать раскрывающееся поле с соответствующим значением.
Чтобы преодолеть эту проблему, я написал следующий код
<% if params[:id].blank?%>
<select name="hour[project_id]" id="hour_project_id">
<option value="nil">Select Project</option>
<% @projects.each do|project|%>
<option value="<%=project.id %>"><%=project.name%></option>
<% end%>
</select>
<% else %>
<%= select('hour','project_id', @projects.collect{|project|[project.name,project.id]},{:prompt => 'Select Project'})%>
<% end %>
Таким образом, в случае действия сохранения, я делал выпадающий список только с html, а в случае действия редактирования я делал это с помощью метода collect. Он работает нормально, пока я не попытался закодировать ошибки. Проблема в том, что когда я использую метод ошибки: validates_presence_of: project_id, он не распознает его в html-форме раскрывающегося списка и не отображает сообщение об ошибке (работает только для выпадающего списка с помощью метода collect).
Я буду очень признателен за ваши инструкции и помощь в этом вопросе