Ruby on rails Rails将您重定向为不工作

Ruby on rails Rails将您重定向为不工作,ruby-on-rails,redirect,Ruby On Rails,Redirect,我在过滤器之前有一个过滤器,它检查参数是否为真。如果是,我的应用程序会这样做。但是,&&return似乎引起了一些问题。当我取出它时,它会将每一页的表单重定向到所需的倒计时页面——但随后它会循环或双重呈现 redirect_to :countdown && return if @online == 1 有没有一种方法可以将其封装在if语句中 比如: if current_page(:countdown) redirect_to :countdown if @online =

我在过滤器之前有一个
过滤器,它检查参数是否为真。如果是,我的应用程序会这样做。但是,
&&return
似乎引起了一些问题。当我取出它时,它会将每一页的表单重定向到所需的
倒计时
页面——但随后它会循环或双重呈现

redirect_to :countdown && return if @online == 1
有没有一种方法可以将其封装在if语句中

比如:

if current_page(:countdown)
  redirect_to :countdown if @online == 1
end
before_filter :check_countdown, :except => :countdown

这可能对你有用

return redirect_to :countdown if @online == 1

您最好将
倒计时
操作从您的
前过滤器
中排除,以避免无限循环

比如:

if current_page(:countdown)
  redirect_to :countdown if @online == 1
end
before_filter :check_countdown, :except => :countdown
也就是说,你所做的是正确的:

  redirect_to :countdown and return if @online == 1

您需要使用
而不是
&

从Rails指南:

确保使用和return而不是和&return,因为 前者将起作用,后者将不起作用,因为在 Ruby语言


Scott,我很感谢你的回答,但我现在是rails一年级的学生,对编程基本上是新手,所以虽然你的回答可能是正确的,但对我来说毫无意义。这很公平。祝你在Ruby学习方面好运!:-)你的回答帮助了我+1这太有道理了……我自己也应该考虑一下!!IMHO(至少,这是我进行的方式):当人们给我提供好的答案时,我给他们+1,如果有人回答我的问题,我给+1,我接受答案。我不是在乞求分数,但我觉得斯科特值得。