【问题标题】:Customising Whodunnit information for Rails Admin using Paper Trail使用 Paper Trail 为 Rails Admin 自定义 Whodunnit 信息
【发布时间】:2015-06-30 12:19:04
【问题描述】:

通过将其添加到我的application_controller,我已经能够正确地将用户名附加到 Whodunnit 字段以执行操作

def user_for_paper_trail                                                                                     
    current_user ? current_user.name : 'Public user'                                                           
end

这很好用。

如果用户使用 Rails Admin 进行更改,whodunnit 仍然设置为用户 ID。

当通过 Rails Admin 更新记录时,我可以调用一种方法来告诉纸质记录我想要存储哪些详细信息?

【问题讨论】:

    标签: ruby-on-rails rails-admin paper-trail-gem


    【解决方案1】:

    RailsAdmin 对此有一些问题。您会发现以下内容很有帮助:Display custom label for User in rails_admin paper_trail history

    另外,因为该字段应该存储 ID(即使它是一个字符串字段),所以我会保留 ID 并为 'Public user' 存储一些无意义的内容,例如 '0'(当然,由常量引用)。然后我会覆盖whodunnit 方法以返回'Public user',以防super == '0'

    如果您已经有一堆版本在其whodunnit 字段中带有 ID,或者如果您有多个同名用户,那么这种方法将特别有用。

    附:要快速确认RailsAdmin 完全忽略/不忽略您定义的控制器方法,只需在方法中强制引发错误即可。

    【讨论】:

    • 谢谢!我们的用例纯粹是为了报告,这就是为什么我们有信心将 id 更改为名称。使用它的团队发现这些 ID 毫无用处,因为他们只需要知道该去与谁讨论编辑。我们永远不会通过书面记录或做任何实际使用 whodunnit 的事情来恢复更改。
    猜你喜欢
    • 1970-01-01
    • 2018-11-01
    • 1970-01-01
    • 2013-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多