PaperTrail has_many关联无法正常工作

时间:2016-05-17 04:30:00

标签: ruby-on-rails ruby paper-trail-gem

我正在尝试设置paper_trail来恢复has_many关联。对于我的玩具示例,我有两个类:

class Article < ActiveRecord::Base
  has_many :comments
  has_paper_trail
end

class Comment < ActiveRecord::Base
  belongs_to :article
  has_paper_trail
end

我测试的代码是:

a = Article.new
Article.transaction do
  a.comments << Comment.new
  a.comments << Comment.new
  a.save
  a.touch_with_version
end
Article.transaction do
  c = Comment.new
  c.save
  ids = a.comment_ids
  ids.pop
  ids.push c.id
  a.comment_ids = ids
  a.touch_with_version
end
previous_a = a.versions.first.next.reify(has_many: true)
pp previous_a.comments

我希望输出是ID为1和2的注释(即我创建的前两个注释)。但是,我得到的实际输出是:

╰─ ~ rails r lib/one_time/paper_trail.rb
[#<Comment:0x0055a54ae3b148
  id: 3,
  text: nil,
  article_id: nil,
  created_at: Tue, 17 May 2016 04:28:24 UTC +00:00,
  updated_at: Tue, 17 May 2016 04:28:24 UTC +00:00>]

这是我做错了什么,还是PaperTrail宝石中的一个小故障?似乎我已经正确设置了所有内容,并且我的最后一行应该是将文章恢复到原始状态,并保存前两条注释。

0 个答案:

没有答案