Ruby on rails 为什么find方法引用模型类?

Ruby on rails 为什么find方法引用模型类?,ruby-on-rails,ruby,Ruby On Rails,Ruby,Rails新手想知道为什么在Article类上调用find方法,而不是在实例模型上调用find方法 @article = Article.find(params[:id]) 对我来说,做文章是有意义的。新建,因为我们正在从Article类实例化一个对象,但是为什么我们甚至为文章调用Article类上的find方法呢?所有的?文章都与整个集合相关联。让Collection上的find从集合中查找记录是合乎逻辑的。这比使用Article.new.load(params[:id])更清楚 不仅仅是它

Rails新手想知道为什么在Article类上调用find方法,而不是在实例模型上调用find方法

@article = Article.find(params[:id])

对我来说,做
文章是有意义的。新建
,因为我们正在从Article类实例化一个对象,但是为什么我们甚至为
文章调用Article类上的find方法呢?所有的

文章
都与整个集合相关联。让
Collection
上的
find
从集合中查找记录是合乎逻辑的。这比使用
Article.new.load(params[:id])
更清楚

不仅仅是它被认为是一种常见的实践,考虑下一个例子:

class Article
  @@instances = []

  attr_accessor :name

  def initialize(name)
    @name = name
    @@instances << self
  end

  def self.find(name)
    @@instances.find { |i| i.name == name }
  end
end

article = Article.new('New Article')
Article.find('New Article') #=> #<Article:0x00000001668040>
Article.where(..) #=> Relation
Article.where(..).find(12) #=> record with id: 12 satisfying some additional requirements