[小ネタ]RailsのScaffoldテンプレートを上書きするススメの勝手に追補的な記事。
コントローラのテンプレートはrailties/lib/rails/generators/rails/scaffold_controller/templates/controller.rbあたりから#{Rails.root}/lib/templates/rails/scaffold_controller/controller.rbにコピーしてくる。
このへんのどこからどこへコピーしてくるみたいなのはこのへんに書いてある(もしかしてRails Guideに公式のものがあるのかな?)。
以上。
ちなみにsaveとかupdateのコードはRails::Generators::ActiveModel経由で出力しているんだけど、そこにはsave!やupdate!、destroy!がない。これについては次のようなモンキーパッチを当てれば動く。config/application.rbからrequireするとか。
if Rails.const_defined?(:Generators) module Rails module Generators class ActiveModel def destroy! "#{name}.destroy!" end def save! "#{name}.save!" end def update!(params=nil) "#{name}.update!(#{params})" end end end end end