我正在尝试使用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
答案 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
局部变量