什么时候在Rails中使用动态查找器与范围和范围方法?

时间:2013-04-11 18:58:34

标签: ruby-on-rails-3

我在文档中看到,在ROR 3.2中,通常最好在模型中使用范围方法来检索带有参数的记录而不是lamda范围

  

使用类方法是接受参数的首选方法   范围。这些方法仍然可以在协会上访问   对象

但是什么时候使用动态查找器(例如find_by_ *而不是范围和范围方法?动态查找器也可以接收参数,它们似乎更容易直接从视图中使用。

如果我想要检索所有

的记录

attribute1 == [boolean] AND attribute2 IN [array]

哪种方法是可取的(范围,范围方法或动态查找器?)

1 个答案:

答案 0 :(得分:0)

  1. 您不应在视图中使用任何查找程序。
  2. 我可能会使用类方法来编写它。
  3. 类似的东西:

    class Dog < ActiveRecord::Base
    
      attr_accessible :chewed, :color    
    
      def self.toys chewed = false, colors = []
        where chewed: chewed, color: colors
      end
    
    end