Tuesday 26 June 2012

ROR scaffoldで作られる newとcreateアクションの関係

RoRのscaffoldを用いると、index, new, createを含む一連のアクションが指定したモデルに対して自動で作成されます。自動で作成されるため、これまで理解をせずに使用していたnewとcreateアクションに関して調べる良い機会ができたので、今まで恥ずかしながら”謎”に包まれていた scaffold の挙動を例えばpostというモデルに関して作成した場合に関して覚書します。



scaffoldはRESTfulなURLを用いて巧みにnewやcreate、indexなどにユーザのリクエストをさばいていることが見えます。こんなことを考えた人はすごいですね。createアクションでpost.saveが失敗したときにnewのテンプレートを表示して、更にformのパーシャルに既にエラーメッセージ表示のコードも書いておくというのにも感心します。

最近 TDD (Test Driven Development) を採用する方向で仕事をしています。プログラムを組む前に必要とされる結果を特定するという作業は、ステップごとに明確な知識が必要とさるため、下調べが必要になります。現時点でこれはとても有益なのではないかと感じています。

RoRのTDD環境は現時点でできるだけインダストリースタンダードに従いたいため、RSpecを基本として組んでいます。リクエストテストはCapybara, メールのテストは Email_Spec, mock とstubオブジェクトはfactory_girlという具合です。Cucumber やSporkも導入検討が必要ですね。

No comments:

Post a Comment