setoya-blog

システム開発技術、データ分析関連でお勉強したことや、山奥生活を綴る、テンション低めなブログです。

ActiveRecordでSQLを指定して実行する

IN句やEXISTS句はActiveRecordがサポートしていないので、最後の手段でSQLを直打ちするときは、以下のようにする

User.
  find_by_sql([
    'SELECT users.* from users WHERE ' +
      'NOT EXISTS ' +
      '( ' +
      'SELECT hoges.* FROM hoges WHERE ' +
      'hoge.attr = ? AND users.id = hoges.user_id ' +
      ')',
    1])