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“通知”是重定向方法的一个参数。很好的提醒。