Ruby on rails 重构控制器动作

Ruby on rails 重构控制器动作,ruby-on-rails,controller,refactoring,Ruby On Rails,Controller,Refactoring,例如: class Post < ActiveRecord::Base belongs_to :article end class Article < ActiveRecord::Base has_many :posts end 我如何重构这段代码,应该使用after还是around过滤器,如果是,我如何将文章传递给它 您可以使用before_destroy回调,例如: class Post < AR::Base belongs_to :article

例如:

class Post < ActiveRecord::Base
  belongs_to :article
end 

class Article < ActiveRecord::Base
  has_many :posts
end

我如何重构这段代码,应该使用after还是around过滤器,如果是,我如何将文章传递给它

您可以使用before_destroy回调,例如:

class Post < AR::Base
  belongs_to :article

  before_destroy :change_article_status

  private
  def change_article_status
    article = self.article
    # Status update logic here
  end
end
class Post
您可以使用
self
获取您的模型并遍历您想要的任何关系。在这种情况下,它得到的文章

class Post < AR::Base
  belongs_to :article

  before_destroy :change_article_status

  private
  def change_article_status
    article = self.article
    # Status update logic here
  end
end