我是 Hibernate 的 HQL 语法的粉丝,它可以让我形成遍历模型关系的查询,例如:
from Book book where book.publisher.lastName = 'jones'
from Book book where book.chapters.length = 2
是否有用于遍历这样的模型的 ActiveRecord 语法?
我是 Hibernate 的 HQL 语法的粉丝,它可以让我形成遍历模型关系的查询,例如:
from Book book where book.publisher.lastName = 'jones'
from Book book where book.chapters.length = 2
是否有用于遍历这样的模型的 ActiveRecord 语法?
我认为您与 ARel 最接近的是:
Book.joins(:publisher).where('publishers.lastName = ?', 'Jones')
或者
Book.where(:publisher_id => Publisher.where(:last_name => 'Jones'))
(这可能效率较低,因为它将两次而不是一次访问数据库)
和
Book.joins(:chapters).group('books.id').having('count(chapters) = ?', 2)
我承认这有点不可读。
有一些宝石,Squeel是我想到的一种,它可以让您以各种方式更改查询语法 - 其中一种可能会感觉更接近您想要使用的内容。