Ruby on rails 尝试在一个方法中为同一变量定义两个不同的值。轨道
我试图为会话控制器中的一个变量定义两个不同的值。我得到了“语法错误,意外关键字\u elsif,期望关键字\u end”和“语法错误,输入意外结束,期望关键字\u end”。很明显,elsif或我的语法有问题。我想知道我做错了什么,或者有人告诉我一种不同的方法Ruby on rails 尝试在一个方法中为同一变量定义两个不同的值。轨道,ruby-on-rails,ruby,Ruby On Rails,Ruby,我试图为会话控制器中的一个变量定义两个不同的值。我得到了“语法错误,意外关键字\u elsif,期望关键字\u end”和“语法错误,输入意外结束,期望关键字\u end”。很明显,elsif或我的语法有问题。我想知道我做错了什么,或者有人告诉我一种不同的方法 def create unless user = User.from_omniauth(env["omniauth.auth"]) user = User.find_by(email: params[:session][:ema
def create
unless user = User.from_omniauth(env["omniauth.auth"])
user = User.find_by(email: params[:session][:email].downcase)
if user && user.authenticate(params[:session][:password])
log_in user
redirect_to user
# Log the user in and redirect to the user's show page.
else
# Create an error message.
flash.now[:danger] = 'Invalid email/password combination'
render 'new'
end
elsif
user = User.from_omniauth(env["omniauth.auth"])
log_in user
redirect_to user
end
end
尝试此操作,出现错误的原因是您将
elsif
与除非一起使用,这是不正确的,您只能将else
与除非一起使用
def create
user = User.from_omniauth(env["omniauth.auth"])
unless user.present?
user = User.find_by(email: params[:session][:email].downcase)
if user && user.authenticate(params[:session][:password])
log_in user
redirect_to user
# Log the user in and redirect to the user's show page.
else
# Create an error message.
flash.now[:danger] = 'Invalid email/password combination'
render 'new'
end
else
log_in user
redirect_to user
end
end
希望有帮助 试过这个,结果还是一样的。你的权利。谢谢你的帮助。我必须了解它是如何工作的。出现错误的原因是您使用了elsif
和excel
这是不正确的,您只能使用else
和excel,编辑了我的答案和解释。啊,好的。我不明白语法为什么它不作为user.present?询问用户是否在我认为已经在的地方?