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

每天一剂Rails良药之Creating Your Own Rake Tasks

    博客分类:
  • Ruby
阅读更多
Ruby的Rake工具其实是模仿的Make,我们写一个简单的Rakefile看看:
desc "Rake Test"
task :main
  puts "Hello, Rake!"
  
task :default => :main

然后我们在Rakefile当前目录运行rakerake -f Rakefile即可
其中我们定义了一个main task,并且将其设为默认task
我们再看看怎样写结合Rails的Rakefile,Rails在lib/tasks目录里查找并加载所有以.rake作为后缀名的Rakefile,如lib/tasks/load_musicians.rake:
desc "Load musicians and the instruments they play into the database."
task :load_musicians => ['musicians.csv', :environment] do |t|
  before_count = Musicians.count
  File.read(t.prerequisites.first).each do |line|
    given_name, surname, instrument = line.split(/,/)
    Musician.create(:given_name => given_name,
                    :surname => surname,
                    :instrument => instrument)
  end
  puts "Loaded #{Musicians.count - before_count} musicians."
end

然后我们可以运行rake load_musicians命令来调用load_musicians task
该task的dependency列表中包含:environment,这是用来初始化Rails环境以及建立数据库连接
如果我们自定义的task需要migrate,则我们可以这样写:
task :load_musicians => ['musicians.csv', :migrate] do |t|

则我们运行该task时会先rake db:migrate,而且:migrate已经初始化了Rails环境,我们不用再写:environment了
分享到:
评论

相关推荐

    Rails3 使用rake启动后台任务

    Rails3 是 Ruby on Rails 框架的一个版本,它在2010年发布,引入了许多新特性并改进了框架的性能。Rake 是 Ruby 的一个构建工具,类似于 Java 的 Ant 或者 Python 的 setup.py,它允许开发者用自然语言定义任务,并...

    rails简单实例_rake数据导入

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

    rake-0.8.7

    总结起来,`rake-0.8.7`是Rails早期版本的核心组件之一,它简化了开发流程,提高了生产力。通过理解和熟练使用`rake`,开发者能够更好地驾驭Rails框架,实现项目的高效管理。安装和熟悉这个版本的rake,对于深入理解...

    rake-0.8.7.tgz

    在Rails中,rake的任务通常被定义在名为Rakefile的文件中,这个文件包含了一系列的“任务”(tasks),这些任务可以是数据库迁移、测试运行、文件生成或者其他任何开发者需要自动化处理的步骤。通过在命令行输入`...

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

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

    rails API(html)

    自制 命令: rails doc cd doc rake rails:freeze:gems 或 rake rails:freeze:edge rake doc:rails 在rails_app/doc/doc/目录中就生成了一个API目录,即可

    the rails way

    Mongrel不仅能够运行Ruby应用,还提供了调试和扩展的功能,是Rails开发者必备的知识点之一。 #### Rails Plugins: Extending Rails Beyond the Core Rails插件允许开发者扩展Rails的功能,通过添加自定义模块或...

    rails-safe-tasks:自动禁用生产中的危险Rake任务

    Rails安全任务 此宝石为您之间提供了额外的安全保护,并可以意外删除所有生产数据。 当您在生产环境中运行应用...# Also can add your own custom environment to the list of restricted # environments. RailsSafe

    java基础之rails命令大全.pdf

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

    RAILS2.1的中文版资料

    - IceskYsl负责第一章(Introduction)、第九章(Rake Tasks, Plugins and Scripts)、第十一章(Ruby 1.9)和第十四章(Additional Information)。 - jesse.cai负责第五章(Action Pack)和第十二章(Debug)。 - suave.su负责...

    Rails3常用命令行命令

    Rails3 是 Ruby on Rails 框架的一个版本,它提供了一系列强大的命令行工具,使得开发者可以快速地构建和管理Web应用。在本文中,我们将深入探讨Rails3中的常用命令,帮助你更高效地进行开发工作。 首先,新建一个...

    rake-0.8.7.gem

    rake for rails 安装rails资源

    Rails2.2.2之windows环境搭建

    7. **创建Rails项目**:在命令行中,使用`rails new your_app_name`创建一个新的Rails项目。这将生成一个完整的Rails应用结构。 8. **初始化数据库**:运行`rake db:create`来创建数据库,`rake db:migrate`执行...

    Rails入门教程一(翻译)

    - **Rails**:全称为Ruby on Rails,简称RoR或Rails,是一种用于快速开发Web应用的框架,基于Ruby语言,由David Heinemeier Hansson创建。Rails强调代码的简洁性与效率,采用MVC(Model-View-Controller)架构模式,...

    使用sitemap_generator来为rails网站生成Sitemap

    在IT行业中,搜索引擎优化(SEO)是提升网站可见度的关键因素之一,而Sitemap则是SEO策略中的重要组成部分。Sitemap Generator 是一个工具,用于自动创建网站的Sitemap XML文件,帮助搜索引擎更好地理解和索引网站...

    rails本地安装包完整版

    Rails是Ruby编程语言的一个著名框架,用于开发Web应用程序。它以MVC(模型-视图-控制器)架构模式为基础,提供了许多内置功能,使开发者能够更高效地编写代码。在这个"rails本地安装包完整版"中,包含了Rails 2.1.0...

    rails向导打包

    1. **Active Record 查询接口**: Active Record 是 Rails 的核心组件之一,它负责模型和数据库之间的交互。这个文件详细介绍了如何在 Rails 中使用查询语言来检索、过滤和操作数据。这包括基本的查找方法(如 `find`...

Global site tag (gtag.js) - Google Analytics