如何在rails中正确存储所选复选框的值?

时间:2012-10-24 19:27:52

标签: ruby-on-rails-3 activerecord checkbox submit

经过长时间搜索我无法找到有关如何最好地存储铁栏中所选复选框值的任何信息。

我做的事情如下:

  = form_for @profile, :url => request.fullpath, :method => :get,  :html => { :class => 'form-  horizontal' } do |f|
      - @contacts.each do |contact|
        = check_box_tag "contact[#{ contact.slug }]", contact.id, true
        //= label_tag "contact[#{contact.id}]", contact.slug
     = f.submit t('forms.go')

在表单提交上,这给了我参数:

Parameters: {"utf8"=>"✓", "contact"=>{"1"=>"bladadie", "2"=>"jolanteds03",
    "3"=>"jannie6674", "4"=>"henriette1305",
    "5"=>"amy6456", "6"=>"jacquelyn9001", "7"=>"florencio4872",
    "8"=>"angel410", "9"=>"rita558", "10"=>"chadd2684", "11"=>"ilene8219",
    "12"=>"sonny664", "13"=>"monique7912", "14"=>"merritt28103744",
    "15"=>"sunny80771258", "16"=>"lavinia31942066", "17"=>"jada29655747",
    "18"=>"johan16227289", "19"=>"cristobal9746087",
    "20"=>"meggie3447530"}, "commit"=>"Go »"}

如何正确存储已选中的复选框的值?

我无法找到任何相关信息。希望有人可以解释一下!

1 个答案:

答案 0 :(得分:2)

在你的例子中,你可以遍历参数:

params.each do |key, value|
   contact.create(:id => key, :slug => value
end

创建会自动保存它们!