0

我已经尝试了一段时间,我认为我弄错了。

我使用的表单是带有 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 ) %>

我的选择字段不再出现。

4

1 回答 1

1

您的渲染未打印,因为您忘记了等号。

<%= render 'blackwhites', f: blackwhite %>
于 2013-06-02T09:04:05.253 回答