我正在尝试为模型设置一个表单,该表单包含从哈希中的集合填充的选择框。
具体来说,我的员工模型有一个角色散列:
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
最终,我的问题是如何使用模型中的哈希填充选择框并将选择框的值正确保存到数据库中员工模型的列中?