Ruby on rails 为什么rails强迫我使用bundle exec?

Ruby on rails 为什么rails强迫我使用bundle exec?,ruby-on-rails,Ruby On Rails,我想使用“rake路由”运行我的rake命令 但是rails会产生以下错误 ** Invoke routes (first_time) ** Invoke environment (first_time) ** Execute environment rake aborted! uninitialized constant ActiveAdmin /Users/aaalsubaie/Sites/Posnegs/config/initializers/active_admin.rb:1 /Libr

我想使用“rake路由”运行我的rake命令

但是rails会产生以下错误

** Invoke routes (first_time)
** Invoke environment (first_time)
** Execute environment
rake aborted!
uninitialized constant ActiveAdmin
/Users/aaalsubaie/Sites/Posnegs/config/initializers/active_admin.rb:1
/Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/engine.rb:588
/Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/engine.rb:587:in `each'
/Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/engine.rb:587
/Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/initializable.rb:30:in `instance_exec'
/Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/initializable.rb:30:in `run'
/Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/initializable.rb:55:in `run_initializers'
/Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/initializable.rb:54:in `each'
/Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/initializable.rb:54:in `run_initializers'
/Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/application.rb:136:in `initialize!'
/Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/railtie/configurable.rb:30:in `send'
/Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/railtie/configurable.rb:30:in `method_missing'
/Users/aaalsubaie/Sites/Posnegs/config/environment.rb:5
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:36:in `require'
/Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/application.rb:103:in `require_environment!'
/Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/application.rb:292:in `initialize_tasks'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `call'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `execute'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `each'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `execute'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:158:in `invoke_with_call_chain'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:151:in `invoke_with_call_chain'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:176:in `invoke_prerequisites'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:174:in `each'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:174:in `invoke_prerequisites'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:157:in `invoke_with_call_chain'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:151:in `invoke_with_call_chain'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:144:in `invoke'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:116:in `invoke_task'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `top_level'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `each'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `top_level'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:88:in `top_level'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:66:in `run'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:63:in `run'
/Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/bin/rake:33
/usr/bin/rake:23:in `load'
/usr/bin/rake:23
Tasks: TOP => routes => environment
奇怪的是当我运行“bundle exec rake routes”时

它工作正常!我在开发/生产环境中遇到了这个错误,对特定版本的gem的依赖造成了鸡和蛋的局面,在应用程序发现它需要不同版本之前,可能会加载错误版本的gem<代码>bundle exec有助于正确起步。请参见

对特定版本的gem的依赖会造成鸡和蛋的情况,即在应用程序发现需要不同版本的gem之前,可能会加载错误版本的gem<代码>bundle exec有助于正确起步。请参见

如果您使用rvm,您可以使用
bundle install--binstubs
,这样您就不必再执行bundle exec了。有关详细信息,请参阅


不要忘记将bin目录添加到gitignore文件中。

如果使用rvm,可以使用
bundle安装--binstubs
,这样就不必再执行bundle exec了。有关详细信息,请参阅


别忘了将bin目录添加到gitignore文件。

我没有使用rvm。除了我的rails v=3.2.3和ruby v=ruby 1.8.7(2010-01-10 patchlevel 249)[universal-darwin11.0]之外,你还有其他选择吗?你可以使用没有rvm的binstubs-bundle的主页可能会有帮助-我没有使用rvm。除了我的rails v=3.2.3和ruby v=ruby 1.8.7(2010-01-10 patchlevel 249)[universal-darwin11.0]之外,你还有其他选择吗?你可以使用没有rvm的binstubs-bundle的主页可能会有帮助-是否有一个选项可以执行一次并解决所有依赖关系?那我就不需要再使用bundleexec了。那篇文章解释了其中的一些。使用binstubs并更改路径以首先检查它们。或者使用oh my zsh作为shell,因为它可以自动帮助您。或者,如果您使用rvm,请将binstubs添加到.rvmrc文件中。我只是将“be”别名为“bundle exec”,并将其作为“be rake”运行。唯一的其他选择是删除Gemfile中未列出的所有冲突gem。谢谢,我不介意在可执行文件前面编写bundle exec。问题是当我使用Cap deploy进行部署时:cold不使用它,这会从我的站点实时生成类似这样的错误,因为您需要将
要求“bundler/capistrano”
添加到部署中。RBI是否有一个执行一次并解决所有依赖项的选项?那我就不需要再使用bundleexec了。那篇文章解释了其中的一些。使用binstubs并更改路径以首先检查它们。或者使用oh my zsh作为shell,因为它可以自动帮助您。或者,如果您使用rvm,请将binstubs添加到.rvmrc文件中。我只是将“be”别名为“bundle exec”,并将其作为“be rake”运行。唯一的其他选择是删除Gemfile中未列出的所有冲突gem。谢谢,我不介意在可执行文件前面编写bundle exec。问题是当我使用Cap deploy进行部署时:cold不使用它,这会从我的站点实时生成类似这样的错误,因为您需要将
require“bundler/capistrano”
添加到您的deploy.rb