Ruby on rails 为什么find方法引用模型类?
Rails新手想知道为什么在Article类上调用find方法,而不是在实例模型上调用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])更清楚 不仅仅是它
@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