导轨上的嵌套表单在编辑时无法正确显示

时间:2013-10-05 17:01:37

标签: ruby-on-rails ruby-on-rails-3 nested-forms

我正在使用Nested_forms gem为应用程序,一切正常。我遵循文档here ...

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

唯一的问题是,当我想填充列表例如编辑时,我不能再次填充用户先前选择的所有值的列表,只有第一个值在那里,2nds选择框那个应该出现,显得透明..我留下一个图像,因为英语不是我的lenguage y可能很糟糕描述它

enter image description here

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

enter image description here

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

enter image description here

这里是代码。

<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

1 个答案:

答案 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库来使您的多选项更加用户友好: