所以我是个新手(嘿,至少我发现了堆栈溢出,对吧?),我正在使用Michael Hartl的Ruby on Rails Tut。第三章让我输入:
sudo rails generate controller StaticPages home help
然后我回来:
Could not find nokogiri-1.6.7.1 in any of the sources
Run `bundle install` to install missing gems.
当我查看捆绑包安装程序时,它肯定列出了nokogiri 1.6.7.1当我输入时AND:
bundle show nokogiri
我得到:
/Users/user/.rvm/gems/ruby-2.2.3@rails3tutorial2ndEd/gems/nokogiri-1.6.7.1
我在我的macbook pro os x el capitan v 10.11.1 上使用rails v 4.2.5
我们非常感谢您的帮助。也许我可以在一两年后付清!
bundle exec rails generate controller StaticPages home help
bundle exec
获取一个命令及其参数,并将其运行到Gemfile
中定义的环境中,该环境位于同一文件夹中。
正如@David Grayson所提到的,sudo
改变了环境。为了代码的安全性和打包,最好以当前用户的身份运行(并避免部署团队的愤怒)。
尝试在没有sudo
的情况下运行该命令。由于sudo
以root用户的身份运行该命令,它会更改您的环境,并可能导致您使用了错误版本的Ruby,或者您使用的Ruby版本看不到您安装的gem。
编辑:正如Eric Platon所指出的,尝试在该命令的开头添加bundle exec
,以确保bundler已加载,并且将使用正确版本的Rails。