我想为paper_trail版本创建以下方法:
def user
User.find self.whodunnit.to_i
end
这样我就可以在我的应用中自然地访问版本的用户,就像它有belongs_to
关系一样。
我应该在哪里放置此功能(文件夹和文件名)以覆盖/添加到paper_trail的版本模型?
答案 0 :(得分:5)
您可以将其放入打开config/initializers/paper_trail.rb
类的初始值设定项(例如PaperTrail::Version
)中:
module PaperTrail
class Version < ActiveRecord::Base
def user
User.find self.whodunnit.to_i
end
end
end
您需要确认您的Version
模型是PaperTrail::Version
;旧版本的gem只使用Version
。在这种情况下,只需删除外部模块语句。
您还可以创建一个继承自Version
的自定义类,并在has_paper_trail
调用中指定该类。例如(来自README):
class PostVersion < PaperTrail::Version
# custom behaviour, e.g:
self.table_name = :post_versions
end
class Post < ActiveRecord::Base
has_paper_trail :class_name => 'PostVersion'
end