0

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

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

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

如果我想检索所有有

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

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

4

1 回答 1

0
  1. 您不应该在视图中使用任何查找器。
  2. 我可能会使用类方法来编写它。

像这样的东西:

class Dog < ActiveRecord::Base

  attr_accessible :chewed, :color    

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

end
于 2013-04-12T02:47:51.260 回答