在Rails 3中使用accepts_nested_attributes_for保存新记录

时间:2012-05-30 01:52:36

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

如何使用accepts_nested_attributes_for在rails中保存多个新的相关对象?目前它只允许我保存一条新记录。

2 个答案:

答案 0 :(得分:2)

您可以将其作为哈希数组传递,例如

Model.new(:nested_model_attributes=>{[0]=>{:param=>value},[1]=>{:param=>value})

答案 1 :(得分:1)

这是另一个例子。 如果我有许多兄弟姐妹的录取模型,我有单一的形式,我正在采取超过1兄弟的细节。 然后在控制器中我需要编写以下代码。

def new
    @admission = Admission.new()
    3.times { @admission.siblings.build }
end

以下是您的网页代码。

<%= form_for(@admission) do |f| %>
# fields of admission form
  <%= f.fields_for :siblings do |builder| %>
   # fields for siblings form
  <% end %>
<%= f.submit %>
   

以下是您的型号代码。

class Admission < ActiveRecord::Base
    has_many :siblings, :dependent => :destroy
    accepts_nested_attributes_for :siblings
end