【发布时间】:2013-05-26 04:10:04
【问题描述】:
我正在阅读 Hartl 书的 9.3.3,但一直卡在一个
SessionsController:0x00000100c0da90 的未定义方法“sign_in”
我知道这是因为 sign_in 方法在 session_helper 文件中,它是由模型而不是由控制器拾取的。 Hartl 书不需要“包含 SessionsHelper”行。
如果我加入了我认为不应该这样做的 hack,那么它最终会以另一个错误 undefined method current_user 登陆我
这里是代码
SessionsController.rb
class SessionsController < ApplicationController
def new
@title = "Sign in"
end
def create
user = User.authenticate( params[:session][:email],
params[:session][:password])
if user.nil?
flash.now[:error] = "Invalid email/password combo."
@title = "Sign in"
render 'new'
else
sign_in user
redirect_to user
end
end
def destroy
end
对于 session_helper.rb
module SessionsHelper
def sign_in(user)
cookies.permanent.signed[:remember_token] = [user.id, user.salt]
self.current_user = user
end
【问题讨论】:
标签: ruby-on-rails ruby