`
hideto
  • 浏览: 2683255 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Rails宝典之第六十六式:自定义Rake任务

    博客分类:
  • Ruby
阅读更多
Rake的强大之处你要自己使用才有切身体会。

我们经常用rake db:migrate来做数据库迁移
我们还可以使用rake -T来列出可得到的rake任务

让我们在store这个Rails程序中创建一个自己的Rake任务
我们创建store/lib/tasks/ryanb.rake:
task :greet do
  puts "Hello World!"
end

task :ask do
  puts "How are you?"
end

我们现在可以使用rake greet或rake ask来运行

对于相关联的rake任务我们可以这样做:
task :greet do
  puts "Hello World!"
end

task :ask => :greet do
  puts "How are you?"
end

ask任务依赖于greet任务,当我们运行rake ask时会先调用greet任务

需要Rails环境的任务
task :pick_winner => :environment do
  user = User.find(:first, : order => 'RAND()')
  puts "Winner #{user.name}"
end


名字空间
namespace :pick do
  task:winner => :environment do
    user = User.find(:first, : order => 'RAND()')
    puts "Winner #{user.name}"
  end
end


提取公用方法:
namespace :pick do
  desc "Pick a random user as the winner"
  task :winner => :environment do
    puts "Winner: #{pick(User).name}"
  end

  desc "Pick a random product as the prize"
  task :prize => :environment do 
    puts "Prize: #{pick(User).name}"
  end

  def "Pick a random prize as the prize"
  task :all => [:prize, :winner]

  def pick(model_class)
    model_class.find(:first, : order => 'RAND()')
  end
end


资料:
Rake Documentation
Rails Rake Tutorial
Using the Rake Building Language
分享到:
评论

相关推荐

    Rails3 使用rake启动后台任务

    在 Rails 应用程序中,Rake 通常用于数据库迁移、测试、清理等操作,以及启动后台任务。 在 Rails3 中,rake 不仅用于基本的项目管理,还可以用于启动后台任务,这在处理耗时操作、异步任务或者批量数据处理时非常...

    rake-0.8.7

    在Rails开发中,`rake`通过定义在`Rakefile`文件中的任务,使得开发者能够编写自定义的任务,以自动化常见的重复性工作。例如,`db:migrate`命令就是`rake`的一个典型应用,用于执行数据库的迁移操作。 在提供的...

    java基础之rails命令大全.pdf

    ### Java基础之Rails命令大全知识点解析 #### 一、Rails 命令概述 Rails 是一个用于 Web 开发的框架,它基于 Ruby 语言。Rails 遵循 MVC(Model-View-Controller)架构模式,使得 Web 应用程序的开发更加高效、简洁...

    bower-rails, 在 Rails 上,为 Bower 设置类似 DSL + rake任务.zip

    bower-rails, 在 Rails 上,为 Bower 设置类似 DSL + rake任务 rails Bower 对 Rails 项目的支持。 依赖文件是 Rails root 目录中的bower.json,如果使用 DSL,则为 Bowerfile 。 查看最新变更和发布的变更日志文件...

    reseed:实现 reseed rake 任务的简单 rails gem

    创建了一个新的 rake 任务,该任务将删除数据库、创建数据库、运行迁移并使用您的种子数据为新创建的数据库重新设定种子。 快乐建筑! 受到 Nithin Bekal 在的文章的启发 安装 将此行添加到开发组中应用程序的 ...

    rails简单实例_rake数据导入

    来自practical rails social networking sites上的第二章的实例,应用了数据导入,导入数据到mysql后就可以使用,命令: rake db:migrate(进入文件夹"railscoder")

    NetBeans Ruby and Rails IDE with JRuby 2009

    - **运行Rake任务**:Rake是一种用于自动化任务的工具,NetBeans支持执行Rake脚本。 - **使用IRB**:Interactive Ruby Shell (IRB) 是一个强大的交互式Ruby解释器,NetBeans集成此功能。 #### 五、操作Rails项目 -...

    ActiveRecord-Without-Rails:只是在没有Rails的情况下使用ActiveRecord迁移的简单示例

    没有Rails的ActiveRecord 只是在没有Rails的情况下使用ActiveRecord迁移的简单示例您可以执行的任务: rake db:create rake db:migrate rake db:dropRails 5+的注意事项请注意,即使使用Rails 5,您也需要rake db:...

    rails_db_dump:用于万无一失的数据库转储的 Rake 任务

    rails_db_dump 添加 Rake 命令以转储和恢复应用程序的数据库。 委托常规转储实用程序,例如mysqldump和pg_dump 。 与它们不同的是,您不必记住任何正确的语法。 您也不必指定连接参数; 如果应用程序工作,转储...

    exception_handler::bomb:自定义错误页面:bomb:Ruby on Rails→将RubyRails异常转换为品牌的4xx5xx HTTP错误页面

    拥有290,000多个下载量,这是*唯一* gem,可为Rails 5和6提供自定义的400/500异常页面 当前 (2018年8月) :memo: - :warning_selector: - :wrench: - :telephone_selector: - :white_medium_star: :memo: 介绍 ...

    :bomb:自定义错误页面:bomb:Ruby on Rails→将Ruby / Rails异常转换为品牌4xx / 5xx HTTP错误页面。-Ruby开发

    下载次数超过290,000,这是为Rails 5和6提供自定义400/500异常页面的“唯一”宝石,ExceptionHandler目前是CUSTOM Rails错误页面的最受欢迎的异常宝石。 拥有290,000多个下载量,这是为Rails 5和6提供自定义400/500...

    rake-tilde:当文件更改时运行 rake 任务。 无需更改您的 Rakefile

    耙子::波浪号当文件更改时运行 rake 任务。 无需对 Rakefile 进行任何更改,只... 每个连续的运行都是在它自己的过程中完成的,所以在 rake 任务期间的全局修改不应该溢出(看看你的 rails)。 如果您调用多个 ~ 任务,

    ruby rails demo

    ruby rails demo, rails 简单demo。 (1)到ruby官网:http://www.ruby-lang.org/en/下载window安装包,并安装, ruby版本: ruby -v (2)安装Rails3 gem install rails (3)安装sqlite3 gem install sqlite3-ruby 安装...

    CheckDeprecation:从 Rails 日志中查找和显示弃用警告的 Rake 任务

    从 Rails 日志中查找和显示弃用警告的 Rake 任务 安装 只需将 check_deprecation.rake 添加到 lib/tasks 中的 rails 应用程序 用法 要查看 log/ 中所有文件的弃用警告,请使用 check_deprecation:all rake check_...

    rake-0.8.7.tgz

    《rake-0.8.7:Rails开发中...对于初学者,了解rake的基本概念和操作,无疑将为他们的Rails之旅打下坚实的基础。而对于经验丰富的开发者,掌握不同版本的rake特性,则有助于他们处理各种复杂场景,保证项目的顺利进行。

    Ruby-Traceroute一个Rake任务帮助你找到Rails3应用中堵死的路线和未使用的actions

    安装指南将指导用户如何将这个Rake任务集成到现有的Rails 3项目中,而使用文档则会详细解释如何运行和解读分析结果。 总的来说,Ruby-Traceroute是Rails 3开发者的一个宝贵工具,它可以帮助他们优化应用性能,提高...

    教学级Ruby On Rails 手动安装.pdf

    - **Rake**:用于自动化任务的构建工具,Rails项目中常用于执行特定任务。 - **Rails**:核心框架,本例中采用Rails 2.1.0。 - **数据库**:可选MySQL、PostgreSQL或SQLite等。 - **NetBeans IDE**:集成开发环境,...

    rails有用的命令

    - `$ rails c` 或 `$ rails console`:启动Rails控制台,进行交互式编程。 - `$ rails server -p 3001`:在端口3001启动服务器。 - `$ rake doc:rails`:生成Rails API文档。 - `$ rails dbconsole`:打开数据库...

    rails 项目起步示例

    Rails是Ruby语言的一个著名Web开发框架,全称为Ruby on Rails,它遵循MVC(Model-View-Controller)架构模式,旨在提高开发效率和代码可读性。本示例"rails项目起步示例"是一个购物系统,非常适合初学者入门学习。 ...

    flyway-rails:用于 Rails 数据库迁移的 Flyway 周围的薄包装器

    添加 rake 任务来管理您的数据库架构。 将此 gem 添加到您的 Rails 应用程序中: gem 'flyway-rails', github: 'bluerogue251/flyway-rails' 在应用程序的初始化程序中,设置保存迁移的目录: # config/...

Global site tag (gtag.js) - Google Analytics