2

我们可以编写一个类方法,而不是命名范围或范围。

前任:

def self.desc
  <code>
end

为什么我们要使用范围?

4

3 回答 3

3

您可以使用这两种方法。但是通过方法,当您的范围代码增长时,它会更具可读性。

于 2012-04-18T13:48:40.270 回答
2

我们当然可以编写像作用域一样工作的类方法。当我们没有 arel 可玩时,它们也有点像 Rails 2.x 的遗留物。

对我来说,范围是一种像关联一样“定义”模型的方式。作用域使定义这些东西变得更好、更清晰,它们通常位于顶部,因此您可以一目了然地看到模型。

我发现当我需要开始传递参数时,我倾向于使用类方法。是的,有一种方法可以做到这一点,但实际上你开始需要一个类方法(特别是如果有可选参数,尽管我相信 Ruby 1.9 在某种程度上解决了这个问题)

于 2012-04-18T14:00:13.957 回答