【发布时间】:2011-01-21 21:32:44
【问题描述】:
我在我的 rails 应用程序中实现了 Authlogic,该应用程序运行良好且测试良好。用户可以登录、注销等。
但是,由于我将 users_controller 中的方法更改为使用 @current_user 变量,所以我的任何用户方法或表单都没有(奇怪的是“索引”除外.. .) 工作!
例如,这个“显示”方法可以工作并显示任何用户的用户配置文件(注意:我想最终以某种方式将其限制为当前登录的用户):
def show
@user = User.find(params[:id])
end
如果我按照 Authlogic rails cast 和官方示例中所示的 show 方法:
def show
@user = @current_user
end
我收到各种undefined method METHOD for nil:NilClass 错误。似乎 @current_user 变量不包含任何用户信息。
我假设@current_user 正在从 current_user 方法中提取信息,如下面的应用程序控制器中所定义:
def current_user
return @current_user if defined?(@current_user)
@current_user = current_user_session && current_user_session.record
end
我错过了什么?我的直觉是用户模型中的用户对象和 current_user 方法之间没有映射。任何帮助将不胜感激!
提前致谢!
~丹
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 authlogic