大佬教程收集整理的这篇文章主要介绍了ruby-on-rails – ActiveRecord :: Relation对象如何调用类方法,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
class Project < ActiveRecord::Base has_many :tasks end class Task < ActiveRecord::Base belongs_to :project def self.initial_tasks # class methods # here return initial tasks end end
现在我们可以打电话:
Project.first.tasks.initial_tasks # how it works
initial_tasks是一个类方法,我们不能在对象上调用类方法.
Project.first.tasks返回一个ActiveRecord :: Relation对象,那么怎么能调用initial_task?
请解释.
首先,Rails模型范围将返回一个ActiveRecord :: Relation对象.从文档:
class Article < ActiveRecord::Base scope :published,-> { where(published: truE) } scope :featured,-> { where(featured: truE) } def self.latest_article order('published_at desc').first end def self.titles pluck(@R_181_6964@) end end
首先,调用范围返回一个ActiveRecord :: Relation对象:
Article.published.class #=> ActiveRecord::relation Article.featured.class #=> ActiveRecord::relation
然后,您可以使用相应模型的类方法对ActiveRecord :: Relation对象进行操作:
Article.published.featured.latest_article Article.featured.titles
了解类方法与ActiveRecord :: Relation之间的关系有一个迂回的方法,但这一点是:
>根据定义,模型范围返回ActiveRecord :: Relation对象>根据定义,范围可以访问类方法>因此,ActiveRecord :: Relation对象可以访问类方法
以上是大佬教程为你收集整理的ruby-on-rails – ActiveRecord :: Relation对象如何调用类方法全部内容,希望文章能够帮你解决ruby-on-rails – ActiveRecord :: Relation对象如何调用类方法所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。