红宝石轨道 – 轨道上的作用域和示波器
发布时间:2020-12-16 20:06:08 所属栏目:百科 来源:网络整理
导读:有人可以解释这种方法的作用和可以传递给什么? scoped(options = nil)Returns an anonymous scope. 还有什么范围方法呢?阅读文档后我不明白. 解决方法 在ActiveRecord中,所有查询构建方法(如where,order,join,limit等)都会返回所谓的范围.只有当您调用像所
有人可以解释这种方法的作用和可以传递给什么?
scoped(options = nil) Returns an anonymous scope. 还有什么范围方法呢?阅读文档后我不明白. 解决方法
在ActiveRecord中,所有查询构建方法(如where,order,join,limit等)都会返回所谓的范围.只有当您调用像所有或者第一次的kicker方法,才会执行累积查询,并返回数据库中的结果.
作用域类方法也返回一个范围.返回的范围默认为空意味着结果集将不受任何限制,意味着如果执行查询,则将返回所有记录. Model.scoped(:conditions => 'id < 100',:limit => 10,:order => 'title ASC') # which would be equivalent to Model.where('id < 100').limit(10).order('title ASC') 范围类方法允许您定义还返回范围的类方法,例如: class Model scope :colored,lambda {|col| where(:color => col) } end 可以这样使用: Model.colored 范围的好处是,您可以根据需要组合它们(几乎),所以以下是绝对可能的: Model.red.where('id < 100').order('title ASC').scoped(:limit => 10) 我也强烈建议阅读http://guides.rubyonrails.org/active_record_querying.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |