gpt4 book ai didi

ruby-on-rails - 使用 whodunnit 获取用户实例

转载 作者:行者123 更新时间:2023-12-03 15:57:27 27 4
gpt4 key购买 nike

在我的主页上,我使用 Papertrail 显示最新更新。

Controller

@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 %>

在这里我得到了关联的用户,但只有 whodunnit 的 ID,但我想得到一个用户实例来获取 用户名 .所以insted 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

关于ruby-on-rails - 使用 whodunnit 获取用户实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21865495/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com