我已经尝试了一段时间,我认为我弄错了。
我使用的表单是带有fields_for的嵌套表单,我想要的是将rails select函数中的每个数组值保存到db中的新行中。
我已经在我的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 model:
class Print < ActiveRecord::Base
has_many :blackwhites
belongs_to :user
accepts_nested_attributes_for :blackwhites, :allow_destroy => true
...
...
end
更新2:
我观看过railscast并修改了我的嵌套表单,如下所示:
<%= 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 ) %>
我的选择字段不再显示。
答案 0 :(得分:1)
您的渲染未打印,因为您忘记了等号。
<%= render 'blackwhites', f: blackwhite %>