Rails + Authlogic @current_user问题 - "显示"方法不再有效

tho*_*nch 0 ruby-on-rails authlogic ruby-on-rails-3

我在我的rails应用程序中实现了Authlogic,它的工作和测试非常好.用户可以登录,注销等

然而,因为我改变了我的方法在users_controller使用@current_user变量,没有我的用户的方法或形式(而不是"指数"等奇怪...)工作!

例如,这个"显示"方法可以工作并显示任何用户的用户配置文件(注意:我想最终以某种方式将此限制为当前登录的用户):

def show
    @user = User.find(params[:id])
end
Run Code Online (Sandbox Code Playgroud)

如果我遵循Authlogic rails cast和官方示例中显示的show方法:

def show
    @user = @current_user
end
Run Code Online (Sandbox Code Playgroud)

我遇到各种各样的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
Run Code Online (Sandbox Code Playgroud)

我错过了什么?我的预感是用户模型的User对象和current_user方法之间没有映射.任何帮助将不胜感激!

提前致谢!

〜丹

Mar*_*ota 5

不应该只是

def show
    @user = current_user
end
Run Code Online (Sandbox Code Playgroud)

没有@