Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 书面记录显示';创建';事件,但不匹配';摧毁';_Ruby On Rails_Activerecord_Paper Trail Gem - Fatal编程技术网

Ruby on rails 书面记录显示';创建';事件,但不匹配';摧毁';

Ruby on rails 书面记录显示';创建';事件,但不匹配';摧毁';,ruby-on-rails,activerecord,paper-trail-gem,Ruby On Rails,Activerecord,Paper Trail Gem,我正在使用PaperTrail尝试查找书本模型的特定实例的历史记录: irb(main):025:0> PaperTrail::Version.where(item_type: "Book", item_id: "7401738") => #<ActiveRecord::Relation [#<PaperTrail::Version id: 9228142, item_type: "Book", item_id: 7401738, event: "create

我正在使用PaperTrail尝试查找书本模型的特定实例的历史记录:

irb(main):025:0> PaperTrail::Version.where(item_type: "Book", item_id:     "7401738")
=> #<ActiveRecord::Relation [#<PaperTrail::Version id: 9228142, item_type:   "Book", item_id: 7401738, event: "create", whodunnit: "1156", object: nil, created_at: "2014-08-25 16:51:55">]>

那么,我错过了什么?我的实例是如何在没有在PaperTrail中创建记录的情况下消失的?

有一些事情可以阻止跟踪销毁事件。例如,如果仅在模型中指定了某些事件。
的默认行为是跟踪更新、创建和销毁。
坏的:

classbook[:更新,:创建]
结束
好:

classbook[:销毁]
结束

此外,如果您的图书模型中存在关联,并且该图书是通过这些关联删除的,则PaperTrail可能会遇到问题。欲了解更多信息,请查看他们的。

您是否有关联?请同时发布您的图书模型?谢谢@jkeuhlen。该模型只是声明:has_paper_trail,没有指定任何特定事件,因此-我假设它使用的是包含destroy的默认集。在任何情况下,我都有销毁事件的版本,但不是所有的书都有。另外-在第一次扫描时,没有与书籍销毁相关的关联。@Yoram您可以编辑您的问题以添加到书籍的模型和控制器中吗?这是我能想到的唯一两件可以阻止PaperTrail对对象进行版本控制的事情。你有没有试过把你有版本的书具体化,看看会发生什么?如果你在IRB中玩了相当多的游戏,你可以删除那里不会触发版本的书。
irb(main):023:0> Book.find(7401738)
=> ActiveRecord::RecordNotFound: Couldn't find Book with id=7401738
class Book < ActiveRecord::Base
  has_paper_trail :on => [:update, :create]
end
class Book < ActiveRecord::Base
  has_paper_trail # OR :on => [:destroy]
end