在阅读了 Ruby gems 并且不知道 rbenv 或 RVM 是什么之后,我想我可能应该拥有两者之一。
我尝试使用 Homebrew 安装 rbenv,但它告诉我我已经安装了 rbenv。我似乎总是在添加 gem 时遇到问题,通常最终使用 sudo
命令让它工作(我认为这是一个可怕的想法)。
我发现我在尝试添加 Braintree API gem 时遇到了这些问题,并且在尝试启动服务器时出现错误。
我试过的命令:
gem install "braintree"
bundle install
sudo gem install "braintree"
运行时收到的错误
rails server
曾是:"/config/initializers/braintree.rb:2:in `<top (required)="">': uninitialized constant Braintree::Configuratio (NameError)"
最佳答案
从顶部来看,rbenv 和 RVM 是 Ruby 版本管理器。这意味着您可以同时在计算机上安装多个版本的 Ruby,并选择您想要使用的版本。我已经使用过这两种方法,而且我个人喜欢 rbenv 的方法。
话虽如此,我认为您需要从正在安装的 gem 名称周围删除引号。
另外,在您的 Gemfile 中是否列出了 Braintree gem?应该像gem 'braintree'
一样简单.
如果您安装了多个版本的 Ruby,或者即使您只安装了系统 Ruby 和一个安装了 RVM 或 rbenv 的版本,您可能会使用错误的 Ruby 版本启动 Rails 服务器(即它缺少 gem)。您可以通过键入 which ruby
来查看它是否正在使用 rbenv它应该用 .rbenv/
打印出一些东西任何。如果不是,您需要将 rbenv 设置为您当前的 ruby。你可以这样做 rbenv global 2.1.1
其中 2.1.1 是您使用 rbenv 安装的 ruby 版本。如果你还没有安装 rbenv 的版本,你可以使用 ruby-build
并做 rbenv install 2.1.1
或者你想要的任何版本。然后当你启动你的 Rails 服务器时,在命令前面加上 bundle exec
.
您可以通过执行 rbenv local 2.1.1
为您的目录设置本地 ruby 版本。再一次,2.1.1 是您想要的版本。
阅读 rbenv 文档会大有帮助。
关于ruby-on-rails - 我怎么知道我是否在使用 rbenv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27869091/