Ruby on Rails和Rake问题:未初始化的常量Rake :: DSL

Ruby on Rails和Rake问题:未初始化的常量Rake :: DSL

我有一个非常令人沮丧的问题:耙子是愚蠢的。

以下是问题的解决方法:

$ rails new test_app
$ rails generate scaffold new_scaffold field1:string field2:text

这两个工作都很好,但是当我这样做时,

$ rake db:migrate

我收到以下错误。

(in /home/mikhail/test_app)rake aborted!uninitialized constant Rake::DSL/usr/lib/ruby/1.9.1/rake.rb:2482:in `const_missing'
/usr/lib/ruby/gems/1.9.1/gems/rake-0.9.0/lib/rake/tasklib.rb:8:in `<class:TaskLib>'
/usr/lib/ruby/gems/1.9.1/gems/rake-0.9.0/lib/rake/tasklib.rb:6:in `<module:Rake>'/usr/lib/ruby/gems/1.9.1/gems/rake-0.9.0/lib/rake/tasklib.rb:3:in `<top (required)>'
/usr/lib/ruby/gems/1.9.1/gems/rake-0.9.0/lib/rake/rdoctask.rb:20:in `require'
/usr/lib/ruby/gems/1.9.1/gems/rake-0.9.0/lib/rake/rdoctask.rb:20:in `<top (required)>'/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks/documentation.rake:1:in `require'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks/documentation.rake:1:in `<top (required)>'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks.rb:15:in `load'/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks.rb:15:in `block in <top (required)>'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks.rb:6:in `each'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks.rb:6:in `<top (required)>'/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/application.rb:214:in `require'

我看过互联网上类似/相同的错误,人们已经有了它们。似乎没有人似乎解决了这个问题!

我该如何解决这个问题?


翻翻过去那场雪
浏览 646回答 3
3回答

慕的地6264312

来自DHH的推文。Rake .9.0打破了Rails和其他一些东西,你需要:gem&nbsp;"rake",&nbsp;"0.8.7"在你的Gemfile中。

慕仙森

我在之前的回答之后做了一些研究(对不起,我必须在它之前做)。使用Rake gem 0.9.2解决所有问题..我按照以下步骤操作:我安装了gem install rake -v=0.9.2(我有0.9.1宝石)删除了0.9.1&nbsp;gem uninstall rake -v=0.9.1更新了&nbsp;bundle update然后db:migrate显示警告,WARNING: Global access to Rake DSL methods is deprecated. &nbsp;Please....通过将以下内容添加到Rake文件中解决了这个问题。module&nbsp;::YourApplicationName&nbsp;&nbsp; &nbsp;&nbsp;class&nbsp;Application &nbsp;&nbsp;&nbsp;&nbsp;include&nbsp;Rake::DSL&nbsp;&nbsp;endend我省略了@databyte提出的module ::RakeFileUtils extend Rake::FileUtilsExtend选项。这意味着Rake gem 0.9.2工作正常!

芜湖不芜

通过Railstutorial(demo_app)的第2章并遇到了这个问题。我尝试了这里列出的所有其他答案,但是直到我这样做才能让它工作:把它放在你的Rakefile上面需要'rake':require&nbsp;'rake/dsl_definition'我还重新推荐并将所有文件推送到Github和Heroku。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Ruby