Rails 指南声明可以在关联上调用范围。但再进一步,它指出scoped
返回ActiveRecord::Relation
对象的方法“可能会派上用场......在关联上”。如果可以在关联上调用范围,则scoped
提供了哪些附加功能?
问问题
84 次
1 回答
2
scoped
返回一个匿名范围。从 API 文档:
在程序生成复杂查询时,匿名范围往往很有用,其中将中间值(范围)作为一等对象传递很方便。
这是示例:
posts = Post.scoped
posts.size # Fires "select count(*) from posts" and returns the count
posts.each {|p| puts p.name } # Fires "select * from posts" and loads post objects
fruits = Fruit.scoped
fruits = fruits.where(:color => 'red') if options[:red_only]
fruits = fruits.limit(10) if limited?
于 2013-02-21T16:18:05.833 回答