2011-06-10 52 views
0

我正在驗證應用程序控制器中是否存在「test_results」。它作爲局部變量返回。我想打電話給它,並在整個會議期間提供。我怎麼做?想要返回一個全局變量而不是本地變量

「test_results」 在應用控制器:

def test_results 
    (0 .. 4).each do |x| # looks for answers to the first 4 questions 
     if @answers[x].nil? || @answers[x] == 0.0 
     return false 
     break 
     end 
    end 
    return true 
    end 

其它控制器:

before_filter :test_results 

if test_results 
    ...do stuff 
else 
    ...display "take the test" 
end 

錯誤消息從視圖:

undefined local variable or method `test_results' 

回答

1

可以嘗試使用@

if @instrument_results 

編輯

的過濾器沒有被存儲之前的結果。我不知道你想要做什麼,但是你可以在test_results函數中設置一個控制器級別的變量,然後把它作爲@ controller.variable_name來引用。但是如果你的意圖是基於test_results返回值創建一個條件視圖,我建議你在test_results方法中重定向到另一個動作,並將成功內容放入當前控制器。 您可以使用:only和:except修飾符來檢查控制器的哪個動作將調用:before_filter。 希望這有助於。

+0

無法找到。 – Jay 2011-06-10 14:19:34

+0

編輯了更多的信息 – LoSciamano 2011-06-10 15:19:56