ハッシュ内のコレクションから入力された選択ボックスを含むモデルのフォームを設定しようとしています。
具体的には、私の従業員モデルには役割のハッシュがあります。
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 %>
選択ボックスに値を表示できますが、データはシリアル化されていません。代わりに、「役割を空白にすることはできません」という検証メッセージを受け取ります。
私のコントローラーのcreateメソッドは次のようになります。
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
最終的に、私の質問は、モデルのハッシュを使用して選択ボックスにデータを入力し、選択ボックスの値をデータベースの従業員モデルの列に適切に保存するにはどうすればよいですか?