Rails 初哥的问题,Ruby on Rails Tutorial 第八章里面有一个 sign_in 方法,作用是:
1 创建一个带有 remember_token 的 cookie 2 创建一个 current_user 可以在 controller 和 views 里面调用 3 创建一个 @current_user 变量保存登陆 user 的状态
我现在碰到的问题是: 1 current_user 在 views 里面无法调用。<%= current_user.name %> 2 @current_user 在 views 里面是 nil
和书本上的代码对照都一样,但是就是不能工作。这个问题有点奔溃。
def create
@user = User.find_by_email(params[:session][:email])
if @user && @user.authenticate(params[:session][:password])
sign_in @user
redirect_to @user
else
flash.now[:error] = "Invalid email/password combination"
render "new"
end
end
module SessionHelper
def sign_in(user)
cookies[:remember_token] = user.remember_token
self.current_user = user
end
def current_user=(user)
@current_user = user
end
def current_user
@current_user ||= User.find_by_remember_token(cookies[:remember_token])
end