1

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

/Users/farhadam/mboddy/app/controllers/sessions_controller.rb:10:语法错误,意外的 tLBRACK,需要关键字_do 或 '{' 或 '(' 参数 [: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
4

1 回答 1

1

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

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

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

if user

评估User- 类 - 与评估user实例不同。User将始终评估为 true (因为Useris never nil),因此您要评估是否User.validate_login成功将用户分配给user本地变量。

于 2013-11-07T05:21:10.063 回答