ruby-on-rails – 使用whodunnit获取用户实例
发布时间:2020-12-17 02:22:09 所属栏目:百科 来源:网络整理
导读:在我的主页上,我使用papertrail显示最新的更新. 调节器 @contributions = PaperTrail::Version.all.order("created_at DESC") 视图 % @contributions.each do |v| % h2%= v.item.name %smallby /small/h2 % v.changeset.each do |data| % h4%= data %/h4 % e
在我的主页上,我使用papertrail显示最新的更新.
调节器 @contributions = PaperTrail::Version.all.order("created_at DESC") 视图 <% @contributions.each do |v| %> <h2><%= v.item.name %><small>by </small></h2> <% v.changeset.each do |data| %> <h4><%= data %></h4> <% end %> <%= v.whodunnit %> <% end %> 在这里,我得到关联的用户,但只有ID与whodunnit,但我想得到一个用户实例来获取用户名.所以v.whodunnit我想要v.user.username. 我一直在寻找similar question,但似乎无法找到一种方法来创建版本和用户之间的关系. 用户模型 class User < ActiveRecord::Base has_many :versions,:foreign_key => 'whodunnit',:class_name => "PaperTrail::Version" end 版本模型 class Version < PaperTrail::Version belongs_to :user,:foreign_key => 'whodunnit' end 编辑 当我有<%= v.user%>时,我得到了这个在视野中 undefined method `user' for #<PaperTrail::Version:0x007fb24c08e868> 解决方法
还有另一种方法:
class Version < PaperTrail::Version ... def user User.find(whodunnit) if whodunnit end end 如果您需要将用户模型添加到PaperTrail :: Version类本身,则向您的应用添加新的初始化程序: 配置/初始化/ papertrail_monkey_patch.rb module PaperTrail class Version def user User.find(whodunnit) if whodunnit end end end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |