gpt4 book ai didi

ruby-on-rails - 如何将方法添加到 Paper_trail 的版本模型?

转载 作者:太空宇宙 更新时间:2023-11-03 17:23:44 25 4
gpt4 key购买 nike

我想为 paper_trail 版本创建以下方法:

def user
User.find self.whodunnit.to_i
end

这样我就可以在我的应用程序中自然地访问版本的用户,就好像它具有 belongs_to 关系一样。

我应该把这个函数放在哪里(文件夹和文件名)以便覆盖/添加它到 paper_trail 的版本模型?

最佳答案

您可以将它放在一个初始化程序中(例如,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 调用中指定它。例如(来自自述文件):

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

关于ruby-on-rails - 如何将方法添加到 Paper_trail 的版本模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20982804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com