rails中创建rake任务
2016-07-26 15:09
525 查看
在rails中,rake用来编写任务脚本,让我们在cli中可以执行,提供了良好的任务编写结构,并且方便执行相互依赖的任务
rails项目中,rake文件存放位置:lib/tasks/user.rake
1.without namespace:
执行 rake sayhi 即可
2.with namespace
这样直接运行rake user:generate 即可执行生成user数据的任务
3.调用外部的rake方法
执行 rake say:hi 将打印出 “hello xiaocui” 和 “hi xiaocui”
4.单次执行多个方法
执行rake my_weekend 将依次打印每个方法的内容:
5.rake支持默认的任务
执行rake 即可运行该任务,很少用。
适用场景:
1.调整线上的数据,执行rake脚本可以修改production数据库数据
2.创建开发用的测试数据
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.创建开发用的测试数据
相关文章推荐
- rails中的模型关联(进阶篇)
- rails中的模型关联(进阶篇)
- 记一次软raid1的修复过程
- rails中的多态表关联
- lintcode climbing-stairs 爬楼梯 递归 循环
- Rails中嵌套表单的解决
- django部署到apache出现DLL load failed
- daimachuan
- 70. Climbing Stairs
- Gradle sync failed: Gradle DSL method not found: 'compile()',Consult IDE log for more details
- Doing Homework again
- saiku 修改默认图表颜色
- http://www.caogen.com/blog/Infor_detail/83263.html
- intellj vailad code
- org.hibernate.AnnotationException: No identifier specified for entity: cn.itcast.domain.Counter
- Gtk-Message: Failed to load module "canberra-gtk-module"
- opencv Haartraining
- 将GPS坐标转换成百度地图坐标,将baidu 经纬度 转换为google经纬度
- [219] Contains Duplicate II
- pthread_key泄露问题检测