Display custom label for User in rails_admin paper_trail history

╄→尐↘猪︶ㄣ 提交于 2019-12-11 23:37:37

问题


When I go to a paper_trail history page in rails_admin, I see User objects in the User column (#<User:0x007f59a9...). Is there a way to configure this to use one of the User attributes? I thought I could use object_label_method but I don't seem to be having any luck.

Update:

I thought this was purely a display issue but paper_trail is actually storing Strings like #<User:0x007f59a9... in the whodunnit column of the versions table rather than IDs. I have overridden user_for_paper_trail in ApplicationController and while this successfully logs versions with User IDs in my frontend app, it does not in rails_admin. According to this thread, rails_admin should see my custom method because "RailsAdmin::ApplicationController inherits from your ::ApplicationController". Any thoughts on why this is happening and how I can get paper_trail to store User IDs?


回答1:


More digging revealed that this is a known problem with some combinations of versions of the gems. Here is a recent rails_admin pull request that addresses it. Here is a more complete description of the issue.

For now, I'm monkey patching in the fix by putting the following code in config/initializers/rails_admin_user_for_paper_trail.rb:

RailsAdmin::ApplicationController.module_eval do
  def user_for_paper_trail
    _current_user.try(:id) || _current_user
  end
end

For reference, I'm using paper_trail 3.0.6, rails_admin 0.6.6 and Rails 4.2.0.



来源:https://stackoverflow.com/questions/28588690/display-custom-label-for-user-in-rails-admin-paper-trail-history

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!