Ruby on rails Rails 3 vestal_版本:在子模型发生更改时在父模型上创建新版本

Ruby on rails Rails 3 vestal_版本:在子模型发生更改时在父模型上创建新版本,ruby-on-rails,ruby,model,associations,vestal-versions,Ruby On Rails,Ruby,Model,Associations,Vestal Versions,将Rails 3与vestal_版本gem一起使用,并出现以下情况: class Post < ActiveRecord::Base versioned has_many :comments (...) end class Comment < ActiveRecord::Base belongs_to :post (...) end class Post

将Rails 3与vestal_版本gem一起使用,并出现以下情况:

class Post < ActiveRecord::Base
  versioned
  has_many :comments
  (...)
end

class Comment < ActiveRecord::Base
  belongs_to :post
  (...)
end
class Post
Post模型的版本控制工作完美无瑕。我想要的是,一旦相关的评论模型被创建/更新,相关的Post模型应该得到一个新版本。(我不需要vestal_版本的修复功能。)


实现这一点的正确策略是什么?

我使用了
papertrail gem
来完成这类任务,但这对您来说应该是一样的。 一个想法是在创建评论时更新评论的帖子——在其帖子上调用save,并创建该帖子的新版本。大概是这样的:

class Comment < ActiveRecord::Base
  belongs_to :post
  after_create :update_post

  def update_post
    self.post.save
  end
end

我使用了
papertrail gem
来完成这类任务,但这对你来说应该是一样的。 一个想法是在创建评论时更新评论的帖子——在其帖子上调用save,并创建该帖子的新版本。大概是这样的:

class Comment < ActiveRecord::Base
  belongs_to :post
  after_create :update_post

  def update_post
    self.post.save
  end
end

啊,好的。我想这种务实的方法应该可以做到这一点。谢谢仅针对日志:
self.post.send(:create_version)
使用vestal_版本(而不是
self.post.save
)执行此操作。另见:啊,好的。我想这种务实的方法应该可以做到这一点。谢谢仅针对日志:
self.post.send(:create_version)
使用vestal_版本(而不是
self.post.save
)执行此操作。另见: