些末なことだが、Rails 2.x では環境指定の方法が migrateタスク と runner と consoleコマンドで違っているのが不便だ。runnerはオプションの指定方法をセオリ通り2つ用意しているが、そのせいで余計に混乱する。特に使う機会が少ないrunnerとconsoleはいつも確認していた。こんな感じ。
rake db:migrate RAILS_ENV=production ruby script/runner -e production 'Foo.do' ruby script/runner --environment=production 'Bar.do' ruby script/console production
Rails 3.xでは真っ先に改善されているかと思ったら、コマンドがrailsコマンドに集約された以外は何も変わっていなかった。これは何か理由があるのかもしれない。
rake db:migrate RAILS_ENV=production rails runner -e production rails runner --environment=production rails console production
私だったらこんな感じにするかな。rakeの環境指定は難しいところだが、rubyっぽく環境名をconfig.ymlを見て自由に指定できるようにしたい。できるのかな。consoleは直交性のために-eオプションを付けても受け付けるようにする。これだけでもうれしいけど、甘いかな。
rake db:migrate:production rails runner -e production rails console [-e] production
Rails3レシピブック 190の技
posted with amazlet at 12.03.15
高橋 征義 松田 明 諸橋 恭介
ソフトバンククリエイティブ
売り上げランキング: 75223
ソフトバンククリエイティブ
売り上げランキング: 75223