タグ

ブックマーク / dodemoyoiblog.blogspot.com (1)

  • find_by_sql のうまい使い方(1)

    rails3からARELが導入され、ActiveRecordのクエリインターフェースはとても洗練されたものになりました。 scopeを組み合わせることで複雑なクエリをとてもシンプルかつ自然な形で表現できるようになっています。実際のところ、ARELの表現力はよく現れるSQLのほとんどは表現可能だと思います。 たとえば User.activated.without_email.includes(:emails, :tels).order("name").limit(10) のようにしてメールアドレスを登録していないユーザを名前順に10件取り出す、ということが実現できます。ARELがすごいのはこのようなシンプルな例ではなく、もっと多数のテーブルが絡んだ複雑なクエリであっても、scope を適切に定義することですっきりとしたクエリが記述できることにあります。 しかしそんなARにも弱点はあります。パ

    plasma0713
    plasma0713 2024/04/11
    “ということで、変化しにくい部分をうまいことコードの下のほう(モデルの定義)に追いやって、変化しやすい部分をコードの上のほう(よりcontrollerに近いほう)にすくいあげていることになります。”
  • 1