bla*_*zoo 22 associations has-many ruby-on-rails-3.1 paper-trail-gem
我在rails中使用paper_trail来跟踪我的模型版本.但在GitHub库的文件表明,创业板不支持has_many,belongs_to协会.
假设我有一个应用程序记录了一些comapnies的ceos名称:
class Company < ActiveRecord::Base
has_many :ceos
has_paper_trail
end
class Ceo < ActiveRecord::Base
belongs_to :companies
has_paper_trail
end
Run Code Online (Sandbox Code Playgroud)
以上示例代表ABC Inc.的信息.
company.name => "ABC"
company.ceo.past => "John Henry"
company.ceo.present => "Amy Warren"
Run Code Online (Sandbox Code Playgroud)
如何实施以下操作,以便将公司和公司的ceos名称重置为上一版本?
您可以尝试重新建模关联以删除 has_many,因为就 CEO 而言,一家公司在其生命周期中可能拥有多位 CEO,但在特定时期内只有一位 CEO。
其实现可能是一个连接表的 has_one,该连接表由 CEO 和公司的 ID 及其有效时间段组成。
一个有益的副作用是,让一个人两次担任一家公司的首席执行官,中间有另一位首席执行官,并且可以轻松地在域中进行遍历,这将变得微不足道。
| 归档时间: |
|
| 查看次数: |
1316 次 |
| 最近记录: |