2013-04-11 50 views
0

我在ROR 3.2它通常最好使用范围的方法在模型中检索记录带参数,而不是LAMDA的文档中看到的作用域何时在Rails中使用动态查找器与范围和范围方法?

使用类方法是首选的方式接受 范围参数。这些方法仍然会在关联 对象

但访问时,你使用动态查找器(如find_by_的*,而不是规模和范围的方法?动态查找器还可以接收参数,它们似乎是简单的使用直接从该视图。

如果我想要检索所有具有

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

记录其方法是可取的(范围,范围方法,或动态取景器?)

回答

0
  1. 您不应该在您的意见中使用任何发现者。
  2. 我可能会写这个使用类的方法。

是这样的:

class Dog < ActiveRecord::Base 

    attr_accessible :chewed, :color  

    def self.toys chewed = false, colors = [] 
    where chewed: chewed, color: colors 
    end 

end