嵌套的rails使用Simple Form形成?

时间:2012-05-15 18:24:01

标签: ruby-on-rails ruby-on-rails-3 activerecord simple-form

如何实现嵌套的rails表单?我无法正确设置此设置。现在我有:

<%= simple_form_for @user do |f| %>

  <%= f.input :city %>
  <%= f.input :address %>
  <%= f.input :zipcode %>
  <%= f.association :interests, :as => :check_boxes, :label => false %>
  <%= f.association :holidays, :as => :check_boxes, :label => false %>

  <%= f.simple_fields_for :friend_birthdays do |friend_birthday| %>
    <%= f.input :name %>
    <%= f.input :gender, :collection => ['male','female'] %>
  <% end %>
  <%= f.button :submit %>
<% end %>

f.association对我的兴趣和工作做得很好假期模型,因为他们只需要收集每个属性。但是,friend_birthdays模型与(兴趣和假期)与用户模型具有完全相同的关系,但 需要编辑/添加多个属性。 任意想法?

1 个答案:

答案 0 :(得分:4)

如果您使用的是Rails 3+,那么它会处理嵌套表单而不需要任何其他宝石。关键是在模型中的关联上使用“accepts_nested_attributes_for”方法,在表单助手上使用fields_for方法。阅读他们herehere

我从未使用过simple_form,但我相信它驱动了Rails中的嵌套表单开发。因此,猜测一下,您需要将嵌套表单引用编写为:

<%= f.simple_fields_for :friend_birthdays do |friend_birthday| %>
  <%= friend_birthday.input :name %>
  <%= friend_birthday.input :gender, :collection => ['male','female'] %>
<% end %>

关键是,您需要在嵌套表单上调用帮助程序,而不是父表单。