2012-04-01 55 views
20

我在rails中使用paper_trail来跟踪我的模型版本。但github回购文件表明该宝石不支持has_many,belongs_to关联。如何纠正has_many/belongs_to与paper_trail关联的版本

比方说,我已经记录了一些comapnies的老总名字的应用程序:

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

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

上面的例子代表了ABC公司的信息

company.name => "ABC" 
company.ceo.past => "John Henry" 
company.ceo.present => "Amy Warren" 

我如何能实现以下操作,以便将公司和公司的ceos名称重置为最新版本?

+1

你有任何更新? – Robin 2013-11-20 23:05:28

+1

我也有同样的问题 – eshaiju 2014-01-18 05:46:18

回答

1

您可以尝试重新建模关联以删除has_many,因为在首席执行官的情况下,公司可能拥有CEO的整个生命周期,但只在某段时间内拥有首席执行官。

对于由CEO和公司的ID以及其有效期限组成的连接表,可能会执行此操作。

一个有益的副作用是让一个人成为公司首席执行官2次与另一位首席执行官进行访问并轻松遍历该领域的结果将变得微不足道。

0

对于如何处理这种情况的说明可以在自述中找到:https://github.com/airblade/paper_trail/blob/master/README.md#associations

基本上需要创建一个version_associations表,无论是在安装时与rails generate paper_trail:install --with-associations选项或手动这个工作。

我建议你阅读Github上的完整文档,了解它是如何工作的。

+0

这根本不回答问题。你只是复制并粘贴了关于这个主题的书面指示。 – dane 2015-11-12 16:49:31

+0

@dane也许你可以通过编辑问题来帮助我和其他人,并且让问题变得更加清晰,然后OP会问什么? – 2015-11-24 13:30:23

相关问题