我对Ruby和Sinatra / Padrino都很陌生,所以如果我错过了一些非常简单的事情,我会道歉。
我让Sinatra工作正常,因为我可以建立一个非常简单的"你好"应用并看到它的工作。
我想继续前进并生成一个新的Padrino项目,但是当我这样做时:
$ padrino g project foobar
我明白了:
/Users/dave/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.0/lib/active_support/ordered_hash.rb:3:in `<top (required)>': undefined method `add_builtin_type' for Psych:Module (NoMethodError)
from /Users/dave/.rvm/rubies/ruby-2.1.5/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:121:in `require'
from /Users/dave/.rvm/rubies/ruby-2.1.5/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:121:in `require'
from /Users/dave/.rvm/gems/ruby-2.1.5/gems/padrino-gen-0.12.4/lib/padrino-gen.rb:3:in `<top (required)>'
from /Users/dave/.rvm/rubies/ruby-2.1.5/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from /Users/dave/.rvm/rubies/ruby-2.1.5/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from /Users/dave/.rvm/gems/ruby-2.1.5/gems/padrino-gen-0.12.4/bin/padrino-gen:12:in `<main>'
我尝试过安装Psych gem,但这并没有改变任何东西。我不知道接下来要尝试什么,或者如何真正解释错误消息。你可以给我一些正确方向的推动吗?
答案 0 :(得分:2)
错误报告显示这可能是RVM问题。
我建议从RVM更改为“ruby-install”和“chruby”,因为恕我直言这些更简单,更容易,并且更好地安装包括心理及其库在内的依赖项。
答案 1 :(得分:1)
正如joelparkerhenderson所指出的,错误消息显示.rvm目录中的gem文件存在问题,这表明存在某些问题或与rvm冲突。切换到系统ruby解决了我的问题。我并不需要在这个项目中使用特定版本的ruby,这对我来说是一个很好的解决方法。
答案 2 :(得分:0)
使用Ruby 2.1.5时遇到了这个问题。在阅读了这里的评论后,我意识到它不是RVM问题,而是红宝石问题。我切换到2.0.0-p576,一切正常。 Psych不能与新的ruby版本兼容。
但是,我不明白不同的ruby版本会如何导致此方法丢失。如果有人能解释我会很感激!
答案 3 :(得分:0)
对我来说,经过大量的谷歌搜索和阅读S.O.上的各种线程,只有我的rvm才是问题所在。我正在接受警告!&#39;警告!&#39; rvm并不是$ PATH的第一名。您可以使用echo $PATH
进行检查。看看你的~/.bashrc
看看是否有像heroku toolbelt或linuxbrew之类的东西,或者其他任何东西,将它们加载到FRONT的FRH中,即预先修改你的路径,而不是APPENDING。这由export PATH="/usr/local/heroku/bin:$PATH"
之类的东西表示。这会在你的PATH的开头设置heroku。只需将其更改为export PATH="$PATH:/usr/local/heroku/bin"
。
我试图使用activesupport启动padrino项目,这导致了问题。如另一个线程所示,更改为早期版本的Ruby并没有削减它,因为activesupport需要2.2.0或更高版本。
修复我的PATH,确保在PATH的最开始时初始化了rvm,修复了我的Padrino问题,并且能够使用以下命令初始化项目:
padrino g project sample_blog -t shoulda -e haml -c sass -s jquery -d activerecord -b
我知道这一切都有点偏离,但我认为它必然会帮助那里的一两个人!
PS我在这个项目文件夹中使用了ruby 2.2.2p95。