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

2014年04月03日 written by hachi8833 | タグ:

こんにちは、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で確認しながら、そこで行われている動作をみっちり解説してくれています。

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


119 views

2014年04月03日
written by hachi8833

hachi8833 の紹介

丙午年生まれ。ITコンサル、ローカライズ業界を経てなぜかWeb開発者志願。 最近の成果は Ruby on Rails チュートリアル ( http://railstutorial.jp/ ) の大量翻訳と日本語エラーチェックサービス Enno ( http://enno.jp/ ) の立ち上げ。Ennoでは正規表現の粋を尽くして誤検出を極力減らしています。 あまりに小粒なネタは Qiita.com にも書いてます。 仕事に関係ないすっとこブログ「あけてくれ」( http://d.hatena.ne.jp/hachi/ ) は2000年頃から多少の中断をはさんで継続中。