Ruby on rails 3.1 如何纠正与纸质记录相关联的版本

Ruby on rails 3.1 如何纠正与纸质记录相关联的版本,ruby-on-rails-3.1,associations,has-many,paper-trail-gem,Ruby On Rails 3.1,Associations,Has Many,Paper Trail Gem,我使用rails中的paper_trail跟踪我的模型版本。但是github repo上的文档表明,gem不支持有许多,属于关联 假设我有一个记录一些公司CEO姓名的应用程序: class Company < ActiveRecord::Base has_many :ceos has_paper_trail end class Ceo < ActiveRecord::Base belongs_to :companies has_paper_trail end 我如

我使用rails中的paper_trail跟踪我的模型版本。但是github repo上的文档表明,gem不支持
有许多
属于
关联

假设我有一个记录一些公司CEO姓名的应用程序:

class Company < ActiveRecord::Base
  has_many :ceos
  has_paper_trail
end

class Ceo < ActiveRecord::Base
  belongs_to :companies
  has_paper_trail
end

我如何实施以下操作,以便将公司和公司CEO的姓名重置为最新版本?

您可以尝试重新建模关联,以删除“有很多CEO”,因为在CEO的情况下,一家公司一生中可能有很多CEO,但在一定时期内只有一个CEO

这个方法的实现可能是一个has_one到一个join表,该表由CEO和Company的ID以及它的有效时间段组成


一个有益的副作用是,让一个人与另一个CEO同时担任一家公司的两次CEO将变得微不足道,并且可以轻松地在域中遍历该CEO。

有关如何处理此问题的说明可以在自述文件中找到:

基本上需要创建一个
version\u associations
表,可以在安装时使用
rails generate paper\u trail:install--with associations
选项创建,也可以手动创建


我建议您阅读Github上的完整文档,了解其工作原理。

您对此有任何更新吗?我也有同样的问题。您找到解决方案了吗?这根本无法回答问题。你只是复制并粘贴了关于这个主题的拙劣说明。@dane也许你可以帮助我和其他人编辑这个问题,让它更清楚地说明OP的要求是什么?
company.name => "ABC"
company.ceo.past => "John Henry"
company.ceo.present =>  "Amy Warren"