我建议您使用嵌套模型,例如,如果您正在编辑员工信息,您可以添加经验(语言和持续时间)。
检查这些 RailsCasts http://railscasts.com/episodes?utf8=%E2%9C%93&search=nested+model
您必须编辑您的 Employee 模型,以便它可以接受嵌套模型(在本例中为 Experience),并且您必须允许对 Experience 的属性进行批量分配。这边走:
员工
attr_accessible :experiences_attributes
accepts_nested_attributes_for :experiences, allow_destroy: true
对于意见:
表格:
<%= simple_form_for @employee do |f| %>
<%= f.input :name %>
<hr />
<h3>Experience</h3>
<%= f.simple_fields_for :experiences do |pf| %>
<%= render 'experience_fields', f: pf %>
<% end %>
<%= link_to_add_fields "New employee experience", f, :experience %>
<hr />
<div>
<%= f.button :submit %>
</div>
<% end %>
部分经验字段
<fieldset>
<%= f.association :language %>
<%= f.input :duration %>
<%= f.hidden_field :_destroy %>
<%= link_to "Remove", '#', class: "remove_fields" %>
</fieldset>
检查 RailsCasts,特别是http://railscasts.com/episodes/196-nested-model-form-part-1和http://railscasts.com/episodes/197-nested-model-form-part-2,以及如果您有高级帐户,请检查http://railscasts.com/episodes/196-nested-model-form-revised
请记住添加视频中解释的 Javascript 函数和帮助程序。
另外,请观看:https ://github.com/nathanvda/cocoon/wiki/A-guide-to-doing-nested-model-forms