Rails会话控制器语法错误

时间:2013-11-07 05:16:51

标签: ruby-on-rails ruby session login

我正在尝试使用ruby on rails设置登录/会话但是当我尝试渲染登录页面时出现此错误:

/Users/farhadam/mboddy/app/controllers/sessions_controller.rb:10:语法错误,意外tLBRACK,期待keyword_do或'{'或'('params [:session] [:password] ^ / Users / farhadam /mboddy/app/controllers/sessions_controller.rb:11:语法错误,意外')',期待keyword_end

这是我的会话控制器:

class SessionsController < ApplicationController

def new
end

def create
user = User.validate_login (

    params [:session][:email],
    params [:session][:password]
    )

if User
    sessions[:user_id] = user.id
    redirect_to login_path
else
    flash[:status] = FALSE
    flash[:alert] = 'Invalid username and password!'

    redirect_to login_path
end
end

def destroy

session[:user_id] = nil
redirect_to login_path
end

end

1 个答案:

答案 0 :(得分:2)

尝试在一行中传递User.validate_login的参数:

user = User.validate_login(params[:session][:email], params[:session][:password])

此外,在以下行(if User)上,您可能会测试用户对象是否已成功通过身份验证。如果是这样,您需要将其更改为以下内容:

if user

评估User - 类 - 与评估user实例不同。 User将始终评估为true(因为User永远不会nil),因此您要评估User.validate_login是否已成功将用户分配给user局部变量