Rails4から--binstubsが使えなくなる件

  • 29
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

Rails4を試そうと思って、いつもどおりbundle install --binstubsしたらrails srails new扱いされてうまくいかなかった。

原因

ここによると、以前のscripts/railsbin/railsに移動したみたいです。

bin/railsrails sとかrails cとかのコマンドができるようになったため、いつものノリで--binstubsすると新bin/railsが上書きされてしまい、rails sなどがうまくいかなくなるようです。

対策

とはいえ、bundle exec rails sと打つのがめんどくさいので、RVMのafter_cd_bundlerフックを活用できるように.bundle/configに以下の設定を追加します。

.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 pumabin/pumaが生成されます。