Rails4から--binstubsが使えなくなる件
Rails4を試そうと思って、いつもどおりbundle install --binstubs
したらrails s
がrails new
扱いされてうまくいかなかった。
原因
ここによると、以前のscripts/rails
がbin/rails
に移動したみたいです。
新bin/rails
でrails s
とかrails c
とかのコマンドができるようになったため、いつものノリで--binstubs
すると新bin/rails
が上書きされてしまい、rails s
などがうまくいかなくなるようです。
対策
とはいえ、bundle exec rails s
と打つのがめんどくさいので、RVMのafter_cd_bundler
フックを活用できるように.bundle/config
に以下の設定を追加します。
BUNDLE_BIN: bin
これbin/
以下に自動でパスが通るようになりますので、rails s
でちゃんとうごくようになります。
RVMのafter_cd_bundler
については昔の投稿を参照してください。
Rails以外のgemについては最新のBundlerを使うことでbin/
以下に実行スクリプトを生成できるようになります。
$ gem install bundler --pre
$ bundle --version
Bundler version 1.3.0.pre.7
$ bundle binstubs puma
bundle binstubs puma
でbin/puma
が生成されます。