ruby-on-rails-3 - Rails 不在 Gemfile 中运行 gem

标签 ruby-on-rails-3 gem rvm

我在 RVM 环境中运行 Rails 3.2.1 和 Ruby 1.9.2-p290

在我的 dev 文件夹中,我有许多不同的 Rails 应用程序,都运行上面的程序,但我没有创建单独的 gemsets

我用它自己的 gemfile 创建了一个新的应用程序,运行了 bundle install 等,一切正常,直到我回到我最初正在开发的主应用程序

当我现在执行 rake routes 时,我得到了错误

rake aborted!
You have already activated rake 10.0.3, but your Gemfile requires rake 10.0.2. Using bundle exec     may solve this. 

我想我知道如何回到正轨,但我不明白的是:

当我查看 .rvm/gems/ruby-1.9.2-p290/gems 文件夹时,我可以看到 rake-0.8.7、rake-0.9.2.2、rake-10.0 的每个 gem 都有一个文件夹.2、rake-10.0.3

所以我安装了 rake 10.0.2 版本,我的主应用程序 gemfile.lock 调用 rake(10.0.2) 并且当我运行 bundle exec rake routes 它确实有效(大概运行 10.0.2?),但是当我运行一条直线 rake 路线时,Rails 似乎想要运行一个不同版本的 Rake,它没有被要求这样做。

所以我的问题是,鉴于调用已安装 Gem 的特定版本似乎不像您预期​​的那样,我如何知道实际运行的是哪个版本的已安装 Gem?

(另外,我想如果我在同一个 RVM 空间内开发不同的应用程序,我可能应该为每个应用程序创建单独的 gemsets?)

最佳答案

此问题已在 ruby​​gems 2.0 中修复 - Gemfile 可用于加载任何可执行 gem。

至于你的问题 RVM 附带了我安装的 gem rubygems-bundler 并且如果可能它应该自动解决依赖关系 - 如果没有安装正确的版本它会回退到你的问题,有一张票在这种情况下改变情况以引发异常 - https://github.com/mpapis/rubygems-bundler/issues/37

基本上 - 确保在项目中执行任何操作之前运行 bundle installrubygems-bundler 将确保运行正确版本的 gem。

关于ruby-on-rails-3 - Rails 不在 Gemfile 中运行 gem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14175354/

相关文章:

ruby-on-rails - 如何配置设备接受 HTTP header 中的身份验证 token ?

ruby-on-rails - Ruby 安装退出并出现错误运行 'requirements_osx_port_update_system ruby-2.0.0-p247' ,

ruby - 如何使用 RVM 让 Upstart 优雅地工作?

ruby 和 "You must recompile Ruby with OpenSSL support or change the sources in your Gemfile"

ruby-on-rails - 如何更新回形针附件字段记录

ruby-on-rails - 我如何判断是否使用了出售的 gem?

java - Sinatra Jruby Heroku - jruby : No such file or directory -- trinidad (LoadError)

ruby-on-rails - 更新本地 gem 源代码

ruby - 获取谷歌搜索结果的正确方法是什么?

ruby-on-rails-3 - 如何在 ruby​​mine 中停止/终止服务器(开发)