Rails 3 MongoID和嵌套表单(嵌入式文档) - 如何添加fields_for的表单字段

时间:2012-06-25 21:56:58

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

我正在使用mongoid(3.0)和rails 3.2来创建一个存储具有多个地址的模型的表单。如何按需添加表单字段(因为我想让用户决定要添加到模型的地址数量)?

在" new"控制器,我使用@ person.addresses.build创建嵌入式文档,即使我尝试通过Rails控制台添加多个地址,一切都按预期工作。但是,如何创建一个动态表单,在用户请求中添加嵌套字段?

形式:

<%= simple_form_for @person, :html => { :multipart => true } do |f| %>
  <%= f.input_field :title %>
  <%= f.fields_for :addresses do |t| %>
    this is an address input:
    <%= t.input :foo %>
  <% end %>
<% end %>

模特:

class Rootobject
  include Mongoid::Document
  field :title
  embeds_many :addresses
  accepts_nested_attributes_for :addresses
end

class Person < Rootobject
  field :firstname
end

class Address
  include Mongoid::Document
  field :foo
  embedded_in :rootobject, :inverse_of => :addresses
end

以上代码简化了我想要做的事情。我的地址表格实际上是部分的。使嵌套形式的地址最简单的方法是显示另一个迭代(部分)?

非常感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用此gem。它会创建地址部分蓝图,您可以在其中添加添加 / 删除按钮以添加/删除地址。