ist*_*tan 11 ruby ruby-on-rails ruby-on-rails-3
试图在rails3中做一个范围.
:book has_many :chapters
Run Code Online (Sandbox Code Playgroud)
我想要范围:长期返回> 10章的书籍.
如何最好地构建此范围(不使用计数器缓存)?
谢谢!
leo*_*ges 19
这应该让你去:
class Book
scope :long, joins(:chapters).
select('books.id, count(chapters.id) as n_chapters').
group('books.id').
having('n_chapters > 10')
end
Run Code Online (Sandbox Code Playgroud)
有帮助吗?
啊 - 在上面的评论中回答我自己的问题,我不得不把计数放在HAVING中:
class Book
scope :long, joins(:chapters).
select('books.id').
group('books.id').
having('count(chapters.id) > 10')
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8157 次 |
| 最近记录: |