A Day in the Life

Railsのscaffold

http://wota.jp/ac/?date=20050718#p01

に書かれてるとおり、scaffoldは『Railsスゲー』って思わせるには十分なんだけど、次のステップに進むときに『?』って事になる。俺も最初Rails使ったときにはscaffoldでなんかそれっぽい物作って喜んでいたけど、今趣味で作ってるRailsアプリ全般じゃscaffoldは全く使ってなかったりもする。

確かにgeneratorでDBの1テーブルを編集できちゃうのが作れちゃうのはすごいんだけど、実務アプリで使うときでも要件満たしてなかったりもするから結局拡張が必要で、scaffold modulesは使えないんだよね。特に日本の実務アプリだと多い要件として編集→確認→完了ってのがあると思うんだけど、scaffoldのeditじゃ編集→完了になっちゃうんだよね。誰かconfirm_scaffold作ってyp!

でもまーgeneratorでscaffold作って、ひな形と利用するのは結構有益だと思える気もするので、MySQL限定のscaffold tipsを。まずdatabase.ymlに利用するDBの情報を書いとく。んで、Rails用に設計したDB、つまりテーブル名を複数形(pluralize)としたやつなら、RAILS_ROOTで

for i in `mysql -N -uroot -ppasswd db_name -e 'show tables'|ruby -r 'config/environment' -pe '$_ = $_.singularize'`; 
do yes|./script/generate scaffold $i $i;done  
# scaffoldの第二引数を設定してるのは複数形のコントローラ名が好きじゃないから

Rails用に設計してないDB、テーブル名が複数形になってないなら、まずenviroment.rbで

ActiveRecord::Base.pluralize_table_names = false

として複数形テーブル名を利用しなくしてから、

for i in `mysql -N -uroot -ppasswd db_name -e 'show tables'`;do yes|./script/generate scaffold $i $i;done

とすることでscaffoldのひな形をたとえテーブル数が数百あってもお手軽に作ることが来出るヨ。

あと関係ないけどヽ( ・∀・)ノくまくまーの人はベリ工とか云ってる当たり勝手に親近感を覚えます!りしゃこかわいいよりしゃこ。

記事の一覧 >