rails中创建rake任务

在rails中,rake用来编写任务脚本,让我们在cli中可以执行,提供了良好的任务编写结构,并且方便执行相互依赖的任务

rails项目中,rake文件存放位置:lib/tasks/user.rake

1.without namespace:

task :sayhi do
  puts "hi"
end

执行 rake sayhi 即可

2.with namespace

namespace :user do
   desc "genertate users"    #描述性文字
   task :generate => :environment do   #environment表示可指定环境 RAILS_ENV=production rake user:generate
       u = User.new([{name: "tom"},{name: "jack"}])
       u.save
   end
end

这样直接运行rake user:generate 即可执行生成user数据的任务

3.调用外部的rake方法

#lib/tasks/hello.rake

namespace :say do
  task :hello do
    puts "hello xiaocui"
  end
end

#lib/tasks/hi.rake

namespace :say do
  task :hi do
    Rake::Task['say:hello'].invoke   #调用外部的task
    puts "hi xiaocui"
  end
end

执行 rake say:hi 将打印出 “hello xiaocui” 和 “hi xiaocui”

4.单次执行多个方法

#lib/myweekend.rake

task :morning do
  puts "get up"
end
task :afternoon do
  puts "go shopping"
end
task :evening do
  puts "have supper"
end
task :my_weekend => [:morning, :afternoon, :evening] do
   puts "This is my whole day on my weekend"
end

执行rake my_weekend 将依次打印每个方法的内容:

get up
go shopping
have supper
This is my whole day on my weekend

5.rake支持默认的任务

task :default => 'say:hello'

执行rake 即可运行该任务,很少用。

适用场景:

1.调整线上的数据,执行rake脚本可以修改production数据库数据

2.创建开发用的测试数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值