Post.includes(:comments).where("comments.content like '%いいね%'")
というようにincludesとwhereを合わせて使うと「文字列中のテーブル名を自動認識しなくする予定だからcomments.content
のテーブル名はreferences(:comments)
で指定してね」というDEPRECATION WARNINGが出ます。
とはいえ文字列で条件を指定しているのが良くないので
Post.includes(:comments).where(Comment.arel_table[:content].matches('%いいね%'))
という感じでArelを使った方が良いです。ちょっとハマった。
元記事:ActiveRecordでincludesとwhereを同時に使う時はJOINするテーブル名の指定に気をつける | 江の島CodeStyle