我已经能够将用户的名称正确地附加到Whodunnit字段中,以便通过将其添加到我的application_controller
def user_for_paper_trail
current_user ? current_user.name : 'Public user'
end
这很好用。
如果用户使用Rails Admin进行更改,则whodunnit仍设置为用户ID。
是否有一种我可以调用的方法,可以通过Rails Admin更新记录时我想要存储的详细信息?
答案 0 :(得分:1)
RailsAdmin
遇到了一些问题。您会发现以下内容:Display custom label for User in rails_admin paper_trail history。
另外,因为该字段应该存储ID(即使它是一个字符串字段),我会保留ID并为'Public user'
存储无意义的内容,例如'0'
(由a引用)当然是恒定的)。然后我会覆盖whodunnit
方法,以便在'Public user'
的情况下返回super == '0'
。
如果您的whodunnit
字段中已有许多带ID的版本,或者您有多个同名用户,则该方法会特别有用。
P.S。要快速确认RailsAdmin
完全忽略/不忽略您定义的控制器方法,只需强制引发方法中的错误。