跳至内容

Ruby on Rails/内置 Rails 工具/编写你自己的 rake 任务

来自 Wikibooks,开放世界的开放书籍
上一个:内置 Rails 工具/便捷的 Rake 任务 索引 下一个:内置 Rails 工具/命令行参考

你可以在lib/tasks目录中为你的 Rails 应用程序创建一个文件,然后将 Rake 任务添加到该文件中,从而编写你自己的 rake 任务。例如,将下列代码添加到lib/tasks/database.rake将使db:recreate任务对你的 Rails 应用程序可用

  namespace :db do
    desc "Drop and create the current database"
    task :recreate => :environment do
      abcs = ActiveRecord::Base.configurations
      ActiveRecord::Base.establish_connection(abcs[RAILS_ENV])
      ActiveRecord::Base.connection.recreate_database(ActiveRecord::Base.connection.current_database)
    end
  end

namespace 方法将块的内容放入指定的名称空间中。你可以按照所需在多层名称空间中嵌套,但通常情况下,一到两层就足够了。

现在可以使用

rake db:recreate
华夏公益教科书