Ruby on rails Rails:在创建新条目时,如何遍历模型中的嵌套属性

Ruby on rails Rails:在创建新条目时,如何遍历模型中的嵌套属性,ruby-on-rails,callback,nested-attributes,Ruby On Rails,Callback,Nested Attributes,我已经研究了如何做到这一点,我发现最好的资源是在 特别是在那一页上,它说: member = Member.create(params[:member]) member.posts.length # => 2 member.posts.first.title # => 'Kari, the awesome Ruby documentation browser!' member.posts.second.title # => 'The eg

我已经研究了如何做到这一点,我发现最好的资源是在

特别是在那一页上,它说:

     member = Member.create(params[:member])
     member.posts.length # => 2
     member.posts.first.title # => 'Kari, the awesome Ruby documentation browser!'
     member.posts.second.title # => 'The egalitarian assumption of the modern citizen'
我正在尝试迭代嵌套属性,并为嵌套在事件模型中的每个场景创建一个新的条目对象,但是如何使用.first和.second进行迭代。。。等等

因此,这里的总体目标是创建一个复杂的表单,当您创建一个事件时,您可以使用嵌套属性在该事件中创建多个场景。创建或更新场景或事件时,需要启动并创建一个与事件ID关联的新日志条目。除此之外,我还需要启动一个回调,以便在他们将资源分配给场景和将场景角色分配给资源时进行回调

通过数小时的研究,除了使用.first和.second之外,我还没有弄清楚如何迭代嵌套属性

以下是我的事件模型:

    class Incident < ActiveRecord::Base
    has_many :scenes
    has_many :scene_assignments
    has_many :entries

    after_create :create_action
    after_update :update_action

    accepts_nested_attributes_for :scenes
    accepts_nested_attributes_for :scene_assignments


    def create_action
       @entry = Entry.new(incident_id: self.id, name: "Created Incident - #{self.name}")
       @entry.save


       self.scenes.each do
          @scene_entry = Entry.new(incident_id: self.id, name: "#{self.scenes.first.name} was created")
          @scene_entry.save
       end

     end

     def update_action
       @entry = Entry.new(incident_id: self.id, name: "Updated Incident - #{self.name}")
       @entry.save
     end

  end

如果要迭代模型的嵌套属性,只需使用普通Ruby循环:

member.posts.each do |post|
 ...
end

您可以使用循环中的
post
变量执行任何操作-更新、保存、销毁等。

不用担心,很乐意提供帮助。
member.posts.each do |post|
 ...
end