在rails_admin paper_trail历史记录中显示User的自定义标签

时间:2015-02-18 16:31:33

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

当我转到rails_admin中的paper_trail历史记录页面时,我会在“用户”列(#<User:0x007f59a9...)中看到“用户”对象。有没有办法配置它以使用其中一个用户属性?我以为我可以使用object_label_method,但我似乎没有任何运气。

更新

我认为这纯粹是一个显示问题,但paper_trail实际上在版本表的#<User:0x007f59a9...列中存储了whodunnit等字符串而不是ID。我在user_for_paper_trail中覆盖了ApplicationController,虽然这在我的前端应用程序中成功记录了具有用户ID的版本,但它不在rails_admin中。根据{{​​3}},rails_admin应该看到我的自定义方法,因为“RailsAdmin :: ApplicationController继承自你的:: ApplicationController”。有关为什么会发生这种情况以及如何让paper_trail存储用户ID的任何想法?

1 个答案:

答案 0 :(得分:0)

更多挖掘显示,这是宝石版本的某些组合的已知问题。 Here是最近发布的rails_admin pull请求。 Here是对此问题的更完整描述。

目前,我通过在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

作为参考,我使用paper_trail 3.0.6,rails_admin 0.6.6和Rails 4.2.0。