Я пытаюсь настроить форму для модели, которая содержит поле выбора, заполненное из коллекции в хэше.
В частности, моя модель сотрудника имеет хэш ролей:
ROLES = {1 => "Lead", 2 => "Engineer", 3 => "Intern" }
И валидатор:
validates_presence_of :role
В идеале я хотел бы заполнить поле выбора в форме, используя эту информацию. Что-то типа:
<%= form_for @employee do |f| %>
<%= label_tag :role, "Role" %>
<%= f.select :employee, :role, Employee::ROLES %>
<% end %>
Хотя я могу отображать значения в поле выбора, данные не сериализуются. Вместо этого я получаю сообщение о том, что «Роль не может быть пустой».
Метод создания моего контроллера выглядит следующим образом:
def create
@employee = Employee.new(params[:employee])
if @employee.save
redirect_to employees_path, :notice => "Successfully created a new employee."
else
render :action => 'new'
end
end
В конечном счете, мой вопрос заключается в том, как заполнить поле выбора с использованием хеш-функции в модели и правильно сохранить значение поля выбора в столбце модели сотрудника в базе данных?