2012-07-23 14 views
6

レール3でrails sを実行すると、bundle exec rails sを実行する必要はありません。または、rails sをアプリケーションGemfile環境で実行するためには、bundle execが必要ですか?レールsまたはバンドルexecレールs

更新 bundle execが異なるためすくいバージョンのすくいタスクの前に使用されるべきであることが理解です。詳細は、http://railsapps.github.com/installing-rails-3-1.htmlを参照してください。この質問のように、スクリプトをおよそレールれる:

rails s 
rails server 
rails c 
rails console 

^はbundle execこれらのレールのスクリプトの前に使用、またはレールコマンドによって呼び出さバンドラあるべきか?

+0

私はいつも 'alias rails = 'bundles exec rails'を追加します。エイリアスrake = 'バンドルexec rake'をbashrcに送ります。問題が解決しました。 – meagar

+0

私は 'alias rails = 'bundle exec rail'は必要ではないと思います: [http://railsapps.github.com/installing-rails-3-1.html](http://railsapps。 github.com/installing-rails-3-1.html) && [http://yehudakatz.com/2011/05/30/gem-versioning-and-bundler-doing-it-right/](http: //yehudakatz.com/2011/05/30/gem-versioning-and-bundler-doing-it-right/) – dylanjha

答えて

9

あなたは熊手の古いバージョン使用することができるので、あなたは注意する必要があるしかしあなたは鉄道> = 3.1でこの動作を取得する必要があります:

をそれは代わりに熊手のコマンド・バンドル幹部の熊手を使うようにするとよいでしょう したがって、デフォルトの バージョンではなく、gemfile(またはGemfile.lockファイルに指定されている の依存関係)で指定されたRakeのバージョンを使用します。たとえば、rake db:migrateの代わりにbundle exec rake db:migrateを実行します。

必要なこと:Rails 3.1をインストールする前に、gake update rakeでRake 0.9.2.2(またはそれ以上) を使用していることを確認してください。そして、rakeの代わりにbundle exec rakeを使用してください。

はレールコマンドの前にバンドルexecを実行しない、レールがすでにバンドラーの 有無をチェックします。それは、レールのための真のそれと反対のコマンドのように見えるhttp://railsapps.github.com/installing-rails-3-1.html

:より引用

Gemfileを介して、 すべてをbundle execのオーバーヘッドなしで設定します。 railsコマンドは ですが、ルールに対する唯一の例外です。より引用

http://blog.wyeworks.com/2011/12/27/bundle-exec-rails-executes-bundler-setup-3-times

+0

私は 'bundle exec'はレーキタスクのための良いアイデアだと思っていますが、 rails server'または 'rails console'? – dylanjha

+0

混乱して申し訳ありません...正しい答えを反映するためにこの回答を編集しました。 – barancw

+0

これをクリアしていただきありがとうございます! – dylanjha

0

http://bundler.io/v1.5/rails3.html - "Railsの3バンドラとサポートで焼かれたが付属しています...バンドラーは、透過的にあなたの依存関係を管理しています!"だから、サーバーを実行してください。

rails server 
関連する問題