Ruby on rails Rails:注意错误
在尝试学习教程时,我在测试“注销”链接时出错。我和导师核对了一下差异,但我不明白为什么我不能按自己的方式去做,为什么会在这个地方出错 我的代码:Ruby on rails Rails:注意错误,ruby-on-rails,notice,Ruby On Rails,Notice,在尝试学习教程时,我在测试“注销”链接时出错。我和导师核对了一下差异,但我不明白为什么我不能按自己的方式去做,为什么会在这个地方出错 我的代码: class SessionsController < ApplicationController def create if user = User.authenticate(params[:email], params[:password]) session[:user_id] = user.id red
class SessionsController < ApplicationController
def create
if user = User.authenticate(params[:email], params[:password])
session[:user_id] = user.id
redirect_to(session[:intended_url] || user), notice:"Welcome back, #{user.name}"
session[:intended_url] = nil
else
flash.now[:alert] = "Invalid email/password combination! you are a failure"
render :new
end
end
def destroy
session[:user_id] = nil
redirect_to root_url, notice: "You're now signed out!"
end
end
class sessioncontroller
更正代码:
class SessionsController < ApplicationController
def new
end
def create
if user = User.authenticate(params[:email], params[:password])
session[:user_id] = user.id
flash[:notice] = "Welcome back, #{user.name}!"
redirect_to(session[:intended_url] || user)
session[:intended_url] = nil
else
flash.now[:alert] = "Invalid email/password combination!"
render :new
end
end
def destroy
session[:user_id] = nil
redirect_to root_url, notice: "You're now signed out!"
end
end
class sessioncontroller
引发的错误为:
会话控制器中的语法错误#销毁
C:/Users/xcpro/ve2/2B3/app/controllers/sessions\u controller.rb:6:
语法错误,意外的“,”,应为关键字\u end
…session[:designed_url]| | | user),注意:“欢迎回来,#{user……”。。。
^
问题是,方法
重定向到
仅在括号中获取参数,但是注意
也应在其中传递。在所有重定向到
参数周围添加括号:
redirect_to( (session[:intended_url] || user), notice: "Welcome back, #{user.name}" )
或者,重定向到
后的空格也可以:
redirect_to (session[:intended_url] || user), notice: "Welcome back, #{user.name}"
Tks zishe,两者都有效。实际上我忘了flash“通知”是重定向方法的一个参数。很好的提醒。