che*_*ell 86 rake ruby-on-rails-3 railstutorial.org
我正在编写Ruby on Rails 3教程书并在命令行上输入以下内容:
rake db:migrate
Run Code Online (Sandbox Code Playgroud)
产生了以下警告.
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'
Run Code Online (Sandbox Code Playgroud)
我不知道该怎么做或如何使用它.我不知道Rake的任何其他命令.
我该如何解决这个问题?
Pat*_*ify 111
include Rake::DSL在调用应用程序load_tasks之前添加到Rakefile也对我有用.
所以在上面用户的情况下,DemoApp::Application.load_tasks在Rakefile中.
小智 64
我在Stack Overflow问题Ruby on Rails和Rake问题中找到了这个:未初始化的常量Rake :: DSL.它指的是@DHH推文.
将以下内容放在Gemfile中
gem "rake", "0.8.7"
Run Code Online (Sandbox Code Playgroud)
你可能会看到类似的东西
rake aborted!
You have already activated Rake 0.9.1 ...
Run Code Online (Sandbox Code Playgroud)
我的目录中仍然有一份Rake 0.9.1,所以我删除了它.
您可以通过运行以下命令"删除"Rake 0.9.1:
gem uninstall rake -v=0.9.1
Run Code Online (Sandbox Code Playgroud)
如果您安装了多个版本的gem,系统将提示您选择一个版本.
在0.9.1清理完之后,我跑了
bundle update rake
Run Code Online (Sandbox Code Playgroud)
并最终能够创建我的数据库文件.我正在使用rake db:create,但它应该rake db:migrate也适用.
我希望它有所帮助.
我在使用安装程序的Windows上遇到了同样的问题.Ruby 1.9.2和Rails 3.0.9.这是我做的:
bundle update rake
bundle show rake
Run Code Online (Sandbox Code Playgroud)
在这之后我运行rake 0.9.2.
然后我更新了应用程序根文件夹中的Rakefile,如下所示:
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
Run Code Online (Sandbox Code Playgroud)
如评论中所述,请确保您的应用名称在上面两个相应的行中是正确的.
| 归档时间: |
|
| 查看次数: |
22558 次 |
| 最近记录: |