在阅读了有关Ruby gem的文章之后,不知道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版本(即缺少 gem )来启动Rails服务器。您可以通过键入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/