3

2 つのモデルがあるとします。コメントを投稿

class Post < ActiveRecord::Base
  has_many :comments
  accepts_nested_attributes_for :comments
end

class Comment < ActiveRecord::Base
  belongs_to :post

  before_save :do_something

  def do_something
    # Please, let me do something!
  end
end

コメント用のフィールドを備えた投稿用のフォームがあります。フィルターを除いて、すべてが期待どおりに機能します。上記の構成では、コメントの before_save フィルターはトリガーされません。

理由と、これを修正する方法を教えてください。

4

2 に答える 2

1

この場合、Railsはコメントを個別にインスタンス化して保存しません。ネストされたコメントに対してこれを処理するには、Postモデルにコールバックを追加することをお勧めします。

class Post < AR::Base
  before_save :do_something_on_comments
  def do_something_on_comments
    comments.map &:do_something
  end
end
于 2012-09-19T14:24:07.287 に答える