我希望变量@user能够在所有其他控制器上访问。我该怎么做呢。
答案 0 :(得分:1)
这是一个例子
Class User
def self.current=(u)
@current_user = u
end
def self.current
@current_user
end
end
您必须在某处设置User.current =
,例如在应用程序控制器中。
然后在另一个模型或控制器中调用User.current
答案 1 :(得分:0)
每次调用动作之间都会销毁变量。
您必须每次重新实例化@user
。
要使其清洁,您可以在before_filter
答案 2 :(得分:0)
如果您想要当前用户(例如),您可以在模型中创建一个方法/函数并调用它。
答案 3 :(得分:0)
您可能希望在ApplicationController中使用current_user函数,例如:
def current_user
@current_user ||= User.find( session[:user_id] ) if session[:user_id].present?
end
helper_method :current_user
您现在可以从所有控制器和视图中调用current_user。 @ Intrepidd的方法也很酷。