シンボルの配列を記述する、MyModel
シリアライズされた属性を持つモデルがあります。a
このコードは機能します:
<% form_for @my_model do |f| %>
<%= f.select :a, MyModel::AS, :multiple => true) %>
<% end %>
パラメータは正しいです:
{ :my_model => { :a => [:a_value1, :a_value2] } }
この複数選択を、次のように一連のチェックボックスに変換したい:
<% form_for @my_model do |f| %>
<% MyModel::AS.each do |a_value|
<%= f.check_box(:a_value) %>
<% end %>
<% end %>
それも機能しますが、パラメータはまったく同じではありません:
{ :my_model => { :a_value1 => 1, :a_value2 => 1 } }
最初の解決策に戻るには、2 つの解決策を考えます...
- my
check_box
をcheck_box_tag
に変換し、複数選択を置き換え、ユーザーが check_box_tags をクリックしたときに選択値を「チェック」するための JavaScript を追加します。次に、パラメーターはコントローラーで直接同じになります。 - パラメータを「適応」させるために、コントローラーに小さなコードを追加します。
醜くない解決策は何ですか?それとも他にありますか?