rails s或bundle exec rails s

时间:2012-07-23 17:03:14

标签: ruby-on-rails-3 bundler

在rails 3中,rails s是否会调用bundler,因此您无需在应用Gemfile环境中执行bundle exec rails sbundle exec运行rails s?< / p>

更新 据了解,由于rake版本不同,在rake任务之前应该使用bundle exec。有关详细信息,请参阅http://railsapps.github.com/installing-rails-3-1.html。这个问题是关于rails脚本的,比如:

rails s
rails server
rails c
rails console

^应该在这些rails脚本之前使用bundle exec,还是由rails命令调用bundler?

2 个答案:

答案 0 :(得分:9)

你应该在Rail&gt; = 3.1中得到这种行为,但是你需要小心,因为你可能正在使用旧版本的rake:

  

使用命令bundle exec rake而不是rake是一个好习惯   所以你将使用你的gemfile中指定的Rake版本(或者   在Gemfile.lock文件中指定的依赖项而不是默认值   版。例如,代替rake db:migrate,运行bundle exec rake   分贝:迁移

     

您需要了解的内容:确保您使用的是Rake 0.9.2.2(或更新版本)   在安装Rails 3.1之前使用gem update rake。并使用bundle exec   耙而不是耙。

引自:http://railsapps.github.com/installing-rails-3-1.html

看起来与rails命令相反:

  

在rails命令之前不要运行bundle exec,rails已经检查了   通过Gemfile存在Bundler并设置所有内容   根据它没有捆绑exec的开销。 rails命令是   这个规则唯一的例外。

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

答案 1 :(得分:0)

http://bundler.io/v1.5/rails3.html - “Rails 3附带了捆绑器支持... Bundler透明地管理你的依赖项!”所以只需用

运行服务器
rails server