【发布时间】:2011-08-25 10:38:49
【问题描述】:
我想找到当前登录的用户。 我在应用程序控制器中使用这种方法:
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
我可以从控制器中的 show 方法访问 current_user,但在任何其他方法中它都是 nil。 这很奇怪,因为它以前可以工作,现在我不知道我做了什么,但它不再工作了。 谁能帮帮我?
【问题讨论】:
-
您的应用程序控制器中是否还有
helper_method :current_user? -
尝试找出是否为 nil,因为 session[:user_id] 为 nil 或其他原因,在特殊情况下。
-
session[:user_id] 的行为与 current_user 完全一样:它可以通过 show 方法访问,并且在其他地方为零。
-
试试
current_user和@current_user -
@current_user 即使在 show 方法中也为零。我不认为这是问题所在,但我不明白的是它在 show 方法中是如何工作的,当我尝试从同一个控制器中的另一个方法访问它时它是 nil?
标签: ruby-on-rails ruby model-view-controller