2014-07-02 39 views
1

在尝试遵循教程时,我在测试“退出”链接时提出错误。我检查了与导师的区别,但我无法弄清楚为什么我不能按照自己的方式来做,为什么在这个地方发生错误。Rails:通知错误

我的代码:

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 

校正代码:

的SyntaxError在SessionsController#破坏

C:

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 

时引发的错误/用户/ xcpro/VE2/2B3 /应用/控制器/会话_controller.rb:6: 语法错误,意外',',期待keyword_end ... ession [:intended_url] ||用户),通知:“欢迎回来,#{用户...... ^

回答

2

的问题是方法redirect_to只需要在括号内的参数,但是notice也应该在它通过添加各地的括号。 redirect_to参数:

redirect_to((session[:intended_url] || user), notice: "Welcome back, #{user.name}") 

或许空间后redirect_to也将工作:

redirect_to (session[:intended_url] || user), notice: "Welcome back, #{user.name}" 
+1

韩国社交协会zishe,都努力其实我忘了,在F lash“notice”是重定向方法的一个参数。尼斯提醒。 –