gpt4 book ai didi

ruby-on-rails - 如何访问模型中的 current_user 对象?

转载 作者:数据小太阳 更新时间:2023-10-29 07:20:59 25 4
gpt4 key购买 nike

我正在尝试在我的“团队”模型中编写一个方法,但 current_user 显示此错误

# 的未定义局部变量或方法“current_user”

def set_default_url
if current_user.id == self.user_id
"/assets/default_black_:style_logo.jpg"
else
"/assets/default_:style_logo.jpg"
end
end

current_user 方法适用于其他模型和 Controller 。我是这样调用这个方法的。

has_attached_file :logo, :styles => { 
:medium => "200x200#",
:thumb => "100x100#",
:small => "50x50#"
},
:default_url => :set_default_url

我正在使用 rails 3.2 、ruby 1.9.3 和 devise 3.1 。这似乎是一个简单的任务,但我不明白错误在哪里。如果有人在这里帮助我,我将非常感激。

最佳答案

current_user 在任何模型中都不可用,要在模型中访问 current_user 执行此操作

在你的应用程序 Controller 中

before_filter :set_current_user

def set_current_user
Team.current_user = current_user
end

在你的 Team 模型中添加这一行

cattr_accessor :current_user

恭喜,现在 current_user 在每个模型中都可用,要获取当前用户,只需在任何地方使用以下行

Team.current_user

注意:添加上述行后重启服务器!

现在在你的问题中你可以像这样使用它

def set_default_url
if Team.current_user.id == self.user_id
"/assets/default_black_:style_logo.jpg"
else
"/assets/default_:style_logo.jpg"
end
end

希望这对您有所帮助!

关于ruby-on-rails - 如何访问模型中的 current_user 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28804532/

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