我正在验证应用程序控制器中是否存在"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'
您可以尝试使用@
if @instrument_results
编辑
未存储before筛选器的结果。我不知道你想做什么,但你可以在test_results函数中设置一个控制器级别的变量,然后将其引用为@controller.variable_name。但如果你想根据test_resultsreturn值创建一个条件视图,我建议你重定向到test_resulds方法中的另一个操作,并将成功内容放在当前控制器中。您可以使用:only和:except修饰符来检查控制器的哪个操作将调用:before_filter。希望这能有所帮助。