環境は
Rails 4.2.3
Ruby 2.2.2
MySQL 5.6.27
です
今様々なサイトを見ながらArelによってクエリを発行する方法を勉強しています。
例えば Userモデルにおいて年齢が20歳以上となっているレコードを検索する場合、
lang
1users = User.arel_table 2User.where(users[:age].gteq 20)
のように書け、戻り値をActiveRecord::Relationとして取得することができます。
なのですがprojectメソッドなどを使った場合に、
(「Arel」という文字列がtitleに入ったarticleを持っているuserを探すというのを例に取ると)
lang
1users = User.arel_table 2articles = Article.arel_table 3query = users 4 .project(Arel.star) 5 .join(articles) 6 .on(articles[:user_id].eq users[:id]) 7 .where(articles[:title].matches "%Arel%") 8 .to_sql 9User.find_by_sql(query)
というように、Arelから作ったSQLをfind_by_sqlメソッドに渡し、Arrayを戻り値として得るような記事ばかりを見るのですが、これをActiveRecord::Relationで取得できるような方法はないでしょうか?
あなたの回答
tips
プレビュー