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

ruby-on-rails – 使用whodunnit获取用户实例,第1张

概述在我的主页上,我使用papertrail显示最新的更新. 调节器 @contributions = PaperTrail::Version.all.order("created_at DESC") 视图 <% @contributions.each do |v| %> <h2><%= v.item.name %><small>by </small></h2> <% v.change 在我的主页上,我使用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    endend
总结

以上是内存溢出为你收集整理的ruby-on-rails – 使用whodunnit获取用户实例全部内容,希望文章能够帮你解决ruby-on-rails – 使用whodunnit获取用户实例所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1276117.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存