Ruby on rails 3 要返回全局变量而不是局部变量吗

Ruby on rails 3 要返回全局变量而不是局部变量吗,ruby-on-rails-3,Ruby On Rails 3,我正在验证应用程序控制器中是否存在“测试结果”。它作为局部变量返回。我想给它打一次电话,让它在整个会议上使用。我该怎么做 应用程序控制器中的“测试结果”: 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

我正在验证应用程序控制器中是否存在“测试结果”。它作为局部变量返回。我想给它打一次电话,让它在整个会议上使用。我该怎么做

应用程序控制器中的“测试结果”:

  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_results返回值生成条件视图,我建议您重定向到test_results方法中的另一个操作,并将成功内容放入当前控制器中。 您可以使用:only和:except修饰符来检查控制器的哪个操作将调用:before\u过滤器。 希望这有帮助