原创作者: hideto
阅读:1606次
评论:0条
更新时间:2011-05-26
Rake的强大之处你要自己使用才有切身体会。
我们经常用rake db:migrate来做数据库迁移
我们还可以使用rake -T来列出可得到的rake任务
让我们在store这个Rails程序中创建一个自己的Rake任务
我们创建store/lib/tasks/ryanb.rake:
我们现在可以使用rake greet或rake ask来运行
对于相关联的rake任务我们可以这样做:
ask任务依赖于greet任务,当我们运行rake ask时会先调用greet任务
需要Rails环境的任务
名字空间
提取公用方法:
资料:
Rake Documentation
Rails Rake Tutorial
Using the Rake Building Language
我们经常用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
评论 共 0 条 请登录后发表评论