Ruby on rails &引用;其中;使用类似HQL语法的查询?

Ruby on rails &引用;其中;使用类似HQL语法的查询?,ruby-on-rails,ruby-on-rails-3,activerecord,Ruby On Rails,Ruby On Rails 3,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 = ?', 'J

我非常喜欢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)