我正在使用Nested_forms gem为应用程序,一切正常。我遵循文档here ...
我的表单将数据保存到数据库,我可以根据需要创建无限数量的额外字段。
唯一的问题是,当我想填充列表例如编辑时,我不能再次填充用户先前选择的所有值的列表,只有第一个值在那里,2nds选择框那个应该出现,显得透明..我留下一个图像,因为英语不是我的lenguage y可能很糟糕描述它
编辑:我认为问题出现在循环中,因为第一次提交时看起来像这样......
保存后,再次将表格打包进行编辑。这就是你得到的。
这里是代码。
<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
答案 0 :(得分: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库来使您的多选项更加用户友好: