scaffoldのviewのテンプレートをカスタマイズする

昨日の『ソフトウエア開発プロフェッショナル』を読んだ後、エンジニアリングを軽視してはいけないと思いました。本書中にあった簡単に石を運ぶような仕組みというのは、事前準備の賜物でしょう。ということで、railsのscaffoldをカスタマイズしてみることに。
ActiveScaffoldみたいなものを自前で用意できたら便利かと思い、ちょっとやってみました。バージョンはRails 2.3.2です。まずはviewのテンプレートのカスタマイズから。

  1. mkdir -p RAILS_ROOT/lib/generators/my_scaffold/templates (my_scaffoldの部分は任意の名前で良い)
  2. cp RUBY_HOME/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/rails_generator/generators/components/scaffold/scaffold_generator.rb RAILS_ROOT/lib/generators/my_scaffold/my_scaffold_generator.rb
  3. cp RUBY_HOME/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/rails_generator/generators/components/scaffold/templates/* RAILS_ROOT/lib/generators/my_scaffold/templates
  4. RAILS_ROOT/lib/generators/my_scaffold/my_scaffold_generator.rbを開き、クラス名をMyScaffoldGeneratorに変更する
  5. RAILS_ROOT/lib/generators/my_scaffold/templates下のテンプレートファイルを適当に編集する

my_scaffoldを実行します。

  1. cd RAILS_ROOT
  2. script/generate my_scaffold Hoge name:string another_day:datetime

これで編集したテンレプートが適用されていることを確認できます。