私は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'))
(データベースに1回ではなく2回ヒットするため、おそらく効率が低下します)
と
Book.joins(:chapters).group('books.id').having('count(chapters) = ?', 2)
私が認めるのは少し読みにくいです。
いくつかの宝石があります。Squeelが頭に浮かぶものです。これにより、クエリ構文をさまざまな方法で変更できます。そのうちの1つが、使用したいものに近づいていると感じる可能性があります。