Rails Papertrail - 显示谁负责上次更改
Rails Papertrail - display who Was Responsible for last change
我正在使用 Devise 和 Papertrail,我想显示最近更新的用户 (documentation link)。
在控制器中:
def show
# @history = @person.versions.last
@last_change = @person.versions.last
@user_who_made_the_change = User.find @last_change.whodunnit.to_i
end
在展示页面
<%= @user_who_made_the_change %>
但是我得到了结果错误:
nil:NilClass
的未定义方法 `whodunnit'
在app/controllers/people_controller.rb:15:在“显示”中
非常感谢任何帮助,谢谢
省略保存版本数据的原因有很多(配置、无回调保存、从控制台保存...)
我想你必须检查一下你是否有要显示的信息:
def show
@last_change = @person.versions.last
@user_who_made_the_change = (User.find(@last_change.whodunnit.to_i) if @last_change && @last_change.whodunnit) || nil
end
这一定能解决问题。
我更喜欢修改初始值设定项以保持模板干净。
config/initializers/paper_trail.rb
PaperTrail::Rails::Engine.eager_load!
module PaperTrail
class Version < ::ActiveRecord::Base
belongs_to :user, foreign_key: :whodunnit
end
end
history.html.erb
<% @versions.each do |version| %>
<%= version.user.email %>
<% end %>
今晚我用谷歌搜索了一下这个话题。我只是想能够写出类似 @post.versions.last.user
的东西并获得设计用户记录(即 whodunnit 那个版本)。
对我有用的方法是使用
创建 paper_trail.rb
初始值设定项
PaperTrail::Rails::Engine.eager_load!
module PaperTrail
class Version < ActiveRecord::Base
include PaperTrail::VersionConcern
belongs_to :user, foreign_key: :whodunnit
end
end
一些解决方案给了我错误,包括 json col not set 或 something and/or undefined method
timestamp_sort_order'`.
这正是对我有用的。
其他选项包括在您的 app/models
中创建这个,我喜欢这个想法但从未尝试过,因为这个 'worked' 我还有其他我想写的代码:)
我正在使用 Devise 和 Papertrail,我想显示最近更新的用户 (documentation link)。
在控制器中:
def show
# @history = @person.versions.last
@last_change = @person.versions.last
@user_who_made_the_change = User.find @last_change.whodunnit.to_i
end
在展示页面
<%= @user_who_made_the_change %>
但是我得到了结果错误: nil:NilClass
的未定义方法 `whodunnit'在app/controllers/people_controller.rb:15:在“显示”中
非常感谢任何帮助,谢谢
省略保存版本数据的原因有很多(配置、无回调保存、从控制台保存...)
我想你必须检查一下你是否有要显示的信息:
def show
@last_change = @person.versions.last
@user_who_made_the_change = (User.find(@last_change.whodunnit.to_i) if @last_change && @last_change.whodunnit) || nil
end
这一定能解决问题。
我更喜欢修改初始值设定项以保持模板干净。
config/initializers/paper_trail.rb
PaperTrail::Rails::Engine.eager_load!
module PaperTrail
class Version < ::ActiveRecord::Base
belongs_to :user, foreign_key: :whodunnit
end
end
history.html.erb
<% @versions.each do |version| %>
<%= version.user.email %>
<% end %>
今晚我用谷歌搜索了一下这个话题。我只是想能够写出类似 @post.versions.last.user
的东西并获得设计用户记录(即 whodunnit 那个版本)。
对我有用的方法是使用
创建paper_trail.rb
初始值设定项
PaperTrail::Rails::Engine.eager_load!
module PaperTrail
class Version < ActiveRecord::Base
include PaperTrail::VersionConcern
belongs_to :user, foreign_key: :whodunnit
end
end
一些解决方案给了我错误,包括 json col not set 或 something and/or undefined method
timestamp_sort_order'`.
这正是对我有用的。
其他选项包括在您的 app/models
中创建这个,我喜欢这个想法但从未尝试过,因为这个 'worked' 我还有其他我想写的代码:)