0

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

更新:

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

4

1 回答 1

0

更多挖掘表明,这是宝石版本的某些组合的一个已知问题。 是一个最近的 rails_admin 拉取请求来解决它。 是对该问题的更完整描述。

现在,我正在通过将以下代码放入修复程序中进行修补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_trail3.0.6、0.6.6rails_admin和 Rails 4.2.0。

于 2015-02-19T18:54:20.160 回答