[小ネタ]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