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/column/324/

この記事が役に立ったらシェア!
メルマガの登録はこちら Web担当者に役立つ情報をサクッとゲット!

人気記事トップ10(過去7日間)

今日の用語

インデックス
検索エンジンがWebページをデータベースに保存しているデータベース。データベース ...→用語集へ

インフォメーション

RSSフィード


Web担を応援して支えてくださっている企業さま [各サービス/製品の紹介はこちらから]