2011-07-22 61 views
1

我有一個filter_before過濾器,用於檢查參數是否爲真。如果這是我的應用程序。但是,&& return似乎導致一些問題。當我把它拿出來時,它會將每一頁的形式重定向到所需的countdown頁面 - 但隨後它會循環或雙重呈現。Rails redirect_to無法正常工作

redirect_to :countdown && return if @online == 1 

有沒有辦法將它包裝在if語句中?

喜歡的東西:

if current_page(:countdown) 
    redirect_to :countdown if @online == 1 
end 
+0

恕我直言(至少,這是我前進的方式):當人們爲我提供了很好的答案,我給他們一個+1,如果有人回答我的問題,我給+ 1,我接受答案。我不是在乞求積分,但我覺得斯科特應得的。 – apneadiving

回答

1

你最好從before_filter排除countdown行動,以避免無限循環。

類似:

before_filter :check_countdown, :except => :countdown 

這就是說,你做了什麼是有效的:

redirect_to :countdown and return if @online == 1 
+0

這很有道理......應該想到這一點! –

0

這可能是對你的工作

return redirect_to :countdown if @online == 1 
1

您需要使用and,而不是&&

從Rails的指南:

請確保您使用和 紅寶石返回,而不是& &回報因爲雖然 前將工作,後者將不會由於運算符優先級語言。

http://guides.rubyonrails.org/layouts_and_rendering.html

+0

斯科特,我很感謝你的回答,但我現在是一年級學生,現在我是一般的新手,所以儘管你的回答可能是正確的,但對我來說它毫無意義。 –

+1

夠公平的。我祝你好運,你的Ruby研究! :-) – Scott

+0

你的答案幫助了我! +1 –