使用方法调用在Ruby on Rails控制器中重定向

时间:2013-03-01 18:39:19

标签: ruby-on-rails ruby

目前这打破了控制器文件的测试。由于某种原因,没有正确重定向:

def edit
  redirect_if_nil(@user)
end

def redirect_if_nil(user)
  if user.nil?
    redirect_to :register_invalid_token, notice: "Your token was invalid" and return
  end
end

2 个答案:

答案 0 :(得分:0)

替换:

redirect_to :register_invalid_token, notice: "Your token was invalid" and return

要:

redirect_to :register_invalid_token, notice: "Your token was invalid" 
return

答案 1 :(得分:0)

有两个错误。首先,:register_invalid_token不是有效的重定向选项。你应该传递一个Hash of options来组成路线或路线。

其次,return将返回redirect_if_nil,而不是控制器。因此它毫无用处。

假设register_invalid_token_path是路线:

def edit
  redirect_if_nil(@user)
end

def redirect_if_nil(user)
  unless user
    redirect_to register_invalid_token_path, notice: "Your token was invalid"
  end
end