首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >已弃用对Rake DSL方法的全局访问

已弃用对Rake DSL方法的全局访问
EN

Stack Overflow用户
提问于 2011-06-01 17:52:14
回答 4查看 22.7K关注 0票数 86

我正在阅读Ruby on Rails 3教程,并在命令行中输入了以下内容:

代码语言:javascript
复制
rake db:migrate

它产生了以下警告。

代码语言:javascript
复制
WARNING: Global access to Rake DSL methods is deprecated.  Please Include
    ...  Rake::DSL into classes and modules which use the Rake DSL methods.

WARNING: DSL method DemoApp::Application#task called at /Users/imac/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/railties-3.0.7/lib/rails/application.rb:215:in `initialize_tasks'

我不知道该怎么做,也不知道如何使用它。我不知道瑞克还有什么其他命令。

我如何解决这个问题?

EN

回答 4

Stack Overflow用户

发布于 2011-06-11 08:05:02

对我来说,在调用应用程序load_tasks之前将include Rake::DSL添加到Rakefile也是可行的。

因此,在上面的用户案例中,在Rakefile中的DemoApp::Application.load_tasks之前。

票数 111
EN

Stack Overflow用户

发布于 2011-06-30 23:29:06

我在Windows上的安装程序也遇到了同样的问题。Ruby 1.9.2和Rails 3.0.9。下面是我所做的:

代码语言:javascript
复制
bundle update rake
bundle show rake

这样做之后,我运行的是rake0.9.2。

然后我更新了应用程序根文件夹中的Rakefile,如下所示:

代码语言:javascript
复制
require File.expand_path('../config/application', __FILE__)
require 'rake'
# If you named your application something other than SampleApp, change that below
module ::SampleApp
    class Application
        include Rake::DSL
    end
end

module ::RakeFileUtils
    extend Rake::FileUtilsExt
end

SampleApp::Application.load_tasks

正如评论中所指出的,确保您的应用程序的名称在上面的两个适当的行中是正确的。

票数 5
EN

Stack Overflow用户

发布于 2011-09-17 20:10:19

如果您在更高版本的Rails (如3.+)上看到了这一点,那么您可能还想通过使用ruby并为您的项目创建一个特定的http://beginrescueend.com/ & gemset来验证您的环境是否干净。

在每个项目的基础上使用.rvmrc文件,这将确保您不会将较旧的系统gems添加到项目中。它以前也咬过我。

这就避免了不得不摆弄生成的Rakefile之类的东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6199301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档