我已经尝试了一段时间,我认为我弄错了。
我使用的表单是带有 fields_for 的嵌套表单,我想要的只是将 rails select 函数中的每个数组值保存到数据库中的新行中。
我在我的 blackwhite.rb 模型中序列化了 :newpages。
<% forms_for @prints do |f| %>
...
...
<%= f.fields_for :blackwhites_attributes do |blackwhite| %>
<%= blackwhite.select :newpages , options_for_select((1..(@print.number_of_images_entry.to_i)).to_a), :multiple => true, :size => @print.number_of_images_entry.to_i %>
<% end %>
<% end %>
编辑1:
它有“多个”,因为我想对页面进行多个选择。
blackwhite.rb 模型:
class Blackwhite < ActiveRecord::Base
attr_accessible :print_id
serialize :newpages
belongs_to :print
end
print.rb 模型:
class Print < ActiveRecord::Base
has_many :blackwhites
belongs_to :user
accepts_nested_attributes_for :blackwhites, :allow_destroy => true
...
...
end
更新 2:
我看过 railscasts 并修改了我的嵌套表单,如下所示:
<%= f.fields_for :blackwhites do |blackwhite| %>
<% render 'blackwhites', f: blackwhite %>
<% end %>
在部分 _blackwhites.html.erb 中:
<%= f.select :newpages , (1..(@print.number_of_images_entry)), { :prompt => "0" }, :multiple => true, :size => @print.number_of_images_entry ) %>
我的选择字段不再出现。