【勉強会報告】Crafting Rails 4 Applications読み会:第2回資料

こんにちは、hachi8833です。

今回、「Crafting Rails 4 Applications」という一人で読むとくじけそうなRuby on Rails上級者向け技術本を読み通してみようじゃないのという社内企画に参加いたしました。噂に違わず、初心者などまるで相手にしていない濃厚な内容で、一つの章に大小様々な秘法がめいいっぱい詰め込まれています。正直自分のレベルではちょっと無謀でしたが、上級者の世界をいろいろ垣間見ることができました。あれはもしかすると走馬灯だっのかもしれません。

自分が担当した第2章「Building Models with Active Model」のスライドを掲載します。

その他の回へのリンク

第2章のメモ

RailsのActive Recordといえば、属性(=データベースのテーブル)を定義すると自動的にその属性を名前に取り込んだメソッドが使えるようになる機能で有名です。2章ではActiveModel::AttributeMethodsを使用して同じことをやってみています。具体的にはattribute_method_prefix()やattribute_method_suffix()などを使用します。

この機能の背後で活躍しているのが、黒魔法とすら呼ばれるmethod_missing()メソッドです。このメソッドを知ったのは『メタプログラミングRuby』という本ですが、どうもこのメソッドについて「家庭から出る排水口にかぶせて大事なものを寸前でキャッチするためのストッキング」みたいなものをついつい連想してしまいました。

自作のモデルをActive Record APIに準拠させるにはinclude ActiveModel::Modelするだけでできてしまうのですが、それをあえて複数のステップに分解し、ActiveModel::Lint::Testsで確認しながら、そこで行われている動作をみっちり解説してくれています。

何かの参考になれば幸いです。

Ruby on RailsによるWEBシステム開発、Android/iPhoneアプリ開発、電子書籍配信のことならお任せください この記事を書いた人と働こう! Ruby on Rails の開発なら実績豊富なBPS

この記事の著者

hachi8833

Twitter: @hachi8833、GitHub: @hachi8833 コボラー、ITコンサル、ローカライズ業界、Rails開発を経てTechRachoの編集・記事作成を担当。 これまでにRuby on Rails チュートリアル第2版の半分ほど、Railsガイドの初期翻訳ではほぼすべてを翻訳。その後も折に触れてそれぞれ一部を翻訳。 かと思うと、正規表現の粋を尽くした日本語エラーチェックサービス enno.jpを運営。 実は最近Go言語が好き。 仕事に関係ないすっとこブログ「あけてくれ」は2000年頃から多少の中断をはさんで継続、現在はnote.muに移転。

hachi8833の書いた記事

週刊Railsウォッチ

インフラ

BigBinary記事より

ActiveSupport探訪シリーズ