我有一个filter_before
过滤器,用于检查param是否为true。如果是我的应用程序这样做。但是,&& return
似乎造成了一些问题。当我拿出它时,它会将每个页面重定向到所需的countdown
页面 - 但随后它会循环或双重渲染。
redirect_to :countdown && return if @online == 1
有没有办法将它包装在if语句中?
类似的东西:
if current_page(:countdown)
redirect_to :countdown if @online == 1
end
答案 0 :(得分:1)
您最好从countdown
中排除before_filter
操作,以避免无限循环。
类似的东西:
before_filter :check_countdown, :except => :countdown
那就是说,你所做的是有效的:
redirect_to :countdown and return if @online == 1
答案 1 :(得分:1)
您需要使用and
代替&&
。
来自Rails指南:
确保使用并返回,而不是&&返回因为虽然 前者会工作,后者不会因运算符优先 Ruby语言。
答案 2 :(得分:0)
它可能对你有用
return redirect_to :countdown if @online == 1