Ruby Gem中未初始化的常量Rake::DSL

Ruby Gem中未初始化的常量Rake::DSL,ruby,rubygems,rake,gem,Ruby,Rubygems,Rake,Gem,我一直在努力更新我的gem(whm_xml at),使之能够与ruby 1.9.2、最新rubygems、最新bundler、最新rdoc、最新rake一起工作。它在1.8.7中运行良好,但只有在1.9.2中出现“未初始化常量Rake::DSL”错误。我以为rake 0.9.2能解决这个问题,但也许不能?我已经读了很多关于StackOverflow的文章,但我还是被卡住了。你知道去哪里找吗 ivan:~/Development/ruby/whm_xml_api_ruby [git:master+

我一直在努力更新我的gem(whm_xml at),使之能够与ruby 1.9.2、最新rubygems、最新bundler、最新rdoc、最新rake一起工作。它在1.8.7中运行良好,但只有在1.9.2中出现“未初始化常量Rake::DSL”错误。我以为rake 0.9.2能解决这个问题,但也许不能?我已经读了很多关于StackOverflow的文章,但我还是被卡住了。你知道去哪里找吗

ivan:~/Development/ruby/whm_xml_api_ruby [git:master+]  → bundle exec rake -T
(in /Users/ivan/Development/ruby/whm_xml_api_ruby)
rake aborted!
uninitialized constant Rake::DSL
/Users/ivan/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rake.rb:2482:in `const_missing'
/Users/ivan/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/tasklib.rb:8:in `<class:TaskLib>'
/Users/ivan/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/tasklib.rb:6:in `<module:Rake>'
/Users/ivan/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/tasklib.rb:3:in `<top (required)>'
/Users/ivan/.rvm/gems/ruby-1.9.2-p180/gems/rdoc-3.6.1/lib/rdoc/task.rb:37:in `require'
/Users/ivan/.rvm/gems/ruby-1.9.2-p180/gems/rdoc-3.6.1/lib/rdoc/task.rb:37:in `<top (required)>'
/Users/ivan/Development/ruby/whm_xml_api_ruby/Rakefile:3:in `require'
/Users/ivan/Development/ruby/whm_xml_api_ruby/Rakefile:3:in `<top (required)>'
/Users/ivan/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rake.rb:2373:in `load'
/Users/ivan/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rake.rb:2373:in `raw_load_rakefile'
/Users/ivan/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rake.rb:2007:in `block in load_rakefile'
/Users/ivan/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rake.rb:2058:in    `standard_exception_handling'
/Users/ivan/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rake.rb:2006:in `load_rakefile'
/Users/ivan/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rake.rb:1991:in `run'
/Users/ivan/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/bin/rake:32:in `<top (required)>'
/Users/ivan/.rvm/gems/ruby-1.9.2-p180/bin/rake:19:in `load'
/Users/ivan/.rvm/gems/ruby-1.9.2-p180/bin/rake:19:in `<main>'
ivan:~/Development/ruby/whm\u xml\u api\u ruby[git:master+]→ bundle-exec-rake-T
(在/Users/ivan/Development/ruby/whm_xml_api_ruby中)
雷克流产了!
未初始化的常量Rake::DSL
/Users/ivan/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rake.rb:2482:in'const_missing'
/Users/ivan/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/tasklib.rb:8:in`'
/Users/ivan/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/tasklib.rb:6:in`'
/Users/ivan/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/tasklib.rb:3:in`'
/Users/ivan/.rvm/gems/ruby-1.9.2-p180/gems/rdoc-3.6.1/lib/rdoc/task.rb:37:in'require'
/Users/ivan/.rvm/gems/ruby-1.9.2-p180/gems/rdoc-3.6.1/lib/rdoc/task.rb:37:in`'
/Users/ivan/Development/ruby/whm_xml_api_ruby/Rakefile:3:in'require'
/Users/ivan/Development/ruby/whm\u xml\u api\u ruby/Rakefile:3:in`'
/Users/ivan/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rake.rb:2373:in'load'
/Users/ivan/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rake.rb:2373:in'raw_load_rakefile'
/Users/ivan/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rake.rb:2007:in'block in load_rakefile'
/Users/ivan/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rake.rb:2058:在“标准异常处理”中
/Users/ivan/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rake.rb:2006:in'load_rakefile'
/Users/ivan/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/rake.rb:1991:in“run”
/Users/ivan/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/bin/rake:32:in`'
/Users/ivan/.rvm/gems/ruby-1.9.2-p180/bin/rake:19:in'load'
/Users/ivan/.rvm/gems/ruby-1.9.2-p180/bin/rake:19:in`'
可能会帮到你。建议在
Rakefile
中添加
require'rake/dsl\u definition'
以上
require'rake'
,我认为这是rake0.9.0版本中出现的问题。试着把它放在你的gem文件中:
gem'rake',0.8.7'

更新

您可以尝试添加

include Rake::DSL if defined?(Rake::DSL)

到你的应用程序;它曾在我的Rails应用程序中起过作用。

我在0.9.1中遇到过同样的问题,安装了0.9.2,它也起了作用,但db:migrate命令发送了一条消息警告:不推荐对Rake DSL方法的全局访问。请 通过添加到rake文件解决了这个问题 模块::yourappname 班级申请 包括Rake::DSL 结束 结束 和 需要“rake/dsl_定义”
在。。LoadTask条目

我在include-Rake::DSL等方面做了些傻事,还遇到了其他错误

添加

宝石“耙”,“0.8.7”


对于Gem来说,这个文件似乎对我有用

是的,这是正确的。rake 0.9.2应该可以纠正这个问题。另外,如果可能的话,我希望我的gem能够与所有的最新版本一起工作。对不起,我浏览了你的答案,但没有意识到你意识到了这一点。我更新了答案,尝试了不同的方法。