为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

翻翻过去那场雪 2019-08-16 14:38:46
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'我看过互联网上类似/相同的错误,人们已经有了它们。似乎没有人似乎解决了这个问题!我该如何解决这个问题?
查看完整描述

3 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

来自DHH推文。Rake .9.0打破了Rails和其他一些东西,你需要:

gem "rake", "0.8.7"

在你的Gemfile中。


查看完整回答
反对 回复 2019-08-16
?
慕仙森

TA贡献1827条经验 获得超7个赞

我在之前的回答之后做了一些研究(对不起,我必须在它之前做)。

使用Rake gem 0.9.2解决所有问题..我按照以下步骤操作:

  • 我安装了gem install rake -v=0.9.2(我有0.9.1宝石)

  • 删除了0.9.1 gem uninstall rake -v=0.9.1

  • 更新了 bundle update

  • 然后db:migrate显示警告,WARNING: Global access to Rake DSL methods is deprecated.  Please....

    通过将以下内容添加到Rake文件中解决了这个问题。

    module ::YourApplicationName  
      class Application
        include Rake::DSL  endend
  • 我省略了@databyte提出的module ::RakeFileUtils extend Rake::FileUtilsExtend选项。

这意味着Rake gem 0.9.2工作正常!


查看完整回答
反对 回复 2019-08-16
?
芜湖不芜

TA贡献1796条经验 获得超7个赞

通过Railstutorial(demo_app)的第2章并遇到了这个问题。我尝试了这里列出的所有其他答案,但是直到我这样做才能让它工作:

把它放在你的Rakefile上面需要'rake':

require 'rake/dsl_definition'

我还重新推荐并将所有文件推送到Github和Heroku。


查看完整回答
反对 回复 2019-08-16
  • 3 回答
  • 0 关注
  • 583 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信