1

嗨,我将 Nested_forms gem 用于应用程序,一切正常。我遵循此处的文档...

我的表单正在将数据保存到数据库,我可以根据需要创建无限数量的额外字段。

唯一的问题是当我想填充列表例如编辑时,我不能再次使用用户之前选择的所有值填充列表,只有第一个值存在,应该出现的第二个选择框,看起来透明..我留下一张图片,因为英语不是我的语言,你可能很难描述它

在此处输入图像描述

编辑:我认为问题出在循环上,因为第一次提交时看起来像这样..

在此处输入图像描述

保存后,再次午餐表格进行编辑。这就是你得到的。

在此处输入图像描述

这是那里的代码。

<div id="nacionalidad">
 <%= f.fields_for :citizens do |citizen_form| %>

    <div>
      <%= citizen_form.label  :citizen, t('generales.citizen')  %>
      <%= citizen_form.select :country_id , Country.all.collect {|p| [ t("generales."+p.iso), p.id ] }.sort_by {|label,code| label}, { :include_blank => true } , { :class => 'pca33' } %>
      <div id="delerr"><%= citizen_form.link_to_remove t('generales.delete') %></div>
    </div>

  <% end %>

  <%= f.link_to_add t('generales.add'), :citizens %>
  </div>

和模型

class Citizen < ActiveRecord::Base
  attr_accessible  :country_id

  belongs_to :player
  belongs_to :country
end
4

1 回答 1

1

您可能会以错误的方式解决此问题。在我看来,使用多选字段和 has_many 关系要容易得多。然后一切都神奇地工作!

形式:

<%= select_tag :countries, options_from_collection_for_select(Country.all, 'id', 'name'), :multiple => true %>

模型:

class Citizen < ActiveRecord::Base
  attr_accessible  :country_id

  belongs_to :player
  has_many :countries
end

然后,如果您愿意,可以使用另一个 javascript 库使您的多选更加用户友好:

于 2013-10-05T21:04:53.650 回答