logo

Arelによって変わったActiveRecord

ヒューマンリソシア株式会社はコラム「Arelによって変わったActiveRecord」を公開しました。

###
Rails 3.0になって大きく変わったところは非常に多く、 Asset pipelineやRoutingの変化など、 ウェブサービスを開発する上で手が届かなかったかゆいところに手が加えられています。 ただし互換性が犠牲にしてでも新しく、より良いものを積極的に取り入れていくため、 「あまり頻繁にバージョンアップされるとついていけない」なんて言う声が聞こえてきたりします。 ただRailsが生み出すエコシステムには、その大変さを乗り越えるだけの大きな利益があるので、 情報を集めて取り込んでみましょう。

閑話休題。さて今回はそのRails 3.0で新しく生まれ変わったActiveRecordのお話です。 Rails 3.0になって、ActiveRecordはArelというSQLを簡単に、直感的に生成できる プラグインを使うようになりました。 このArelというのは「Relational Algebra」または「Active Relation」の略と言われていて、 「関係代数」というものを扱うためのライブラリです。 データベースのことを「Relational Database」というように、 データベースで扱う「関係」を代数のように演算できると考えればわかりやすいでしょうか。 例えばユーザモデルUserで、属性statが3のレコードをregisted_atの順で 取得するには

User.where(:stat => 3).order('registed_at')
のようになります。このwhereメソッドがSQLのWHERE句を、 orderメソッドがORDER BY句に対応しています。 この他にも主に使うメソッドとして以下のようなものがあります。

メソッド SQL
where WHERE
order ORDER BY
GROUP GROUP BY
select SQLのSELECTで指定するカラム名
includes JOIN句で結合するテーブル
limit LIMIT
offset OFFSET
count 最終的にSELECT COUNT(*)とする

この続きは以下をご覧ください
リンク

関連情報
http://resocia.jp/
本プレスリリースは発表元企業よりご投稿いただいた情報を掲載しております。
お問い合わせにつきましては発表元企業までお願いいたします。