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,我接受答案。我不是在乞求分数,但我觉得斯科特值得。