Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 在Rails 3.0.9的嵌套资源中访问父范围_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 3 在Rails 3.0.9的嵌套资源中访问父范围

Ruby on rails 3 在Rails 3.0.9的嵌套资源中访问父范围,ruby-on-rails-3,Ruby On Rails 3,我有一个机器模型,其中包含一个名为Test的嵌套资源。直线加速器有很多测试。测试模型有一个称为基线的布尔属性。我还有一个名为Baselines的嵌套资源,它没有模型。它意味着为基线设置为True的机器聚合所有最新的测试 在我的机器模型中,我有一个称为energy_x的范围 class Machine < ActiveRecord::Base scope :energy_x, lambda { |x| where(:energy => x) } 在我的基线控制器中,我可以

我有一个机器模型,其中包含一个名为Test的嵌套资源。直线加速器有很多测试。测试模型有一个称为基线的布尔属性。我还有一个名为Baselines的嵌套资源,它没有模型。它意味着为基线设置为True的机器聚合所有最新的测试

在我的机器模型中,我有一个称为energy_x的范围

class Machine < ActiveRecord::Base      
scope :energy_x, lambda { |x| where(:energy => x) }
在我的基线控制器中,我可以成功访问此命名范围:

      @energies.each do |energy|    
        @baseline_tests << machine.baseline_tests.energy_x(energy)
      end
但如果我尝试在视图中访问此范围

<%= render :partial => "baseline_test", :collection => @baseline_tests.energy_x(energy)  %>
我得到一个未定义的方法错误:

    undefined method `energy_x' for #<Array:0x007f9da7686950>
我听说无论如何我都不应该在视图中使用范围,但我需要一种根据参数对集合@baseline\u测试进行排序的方法。此参数的值有无限的选项,因此在控制器中创建名为@baseline_tests_1和@baseline_tests_2的实例变量没有意义。我认为它必须在视图中循环完成

有什么建议吗