Rake的强大之处你要自己使用才有切身体会。
我们经常用rake db:migrate来做数据库迁移
我们还可以使用rake -T来列出可得到的rake任务
让我们在store这个Rails程序中创建一个自己的Rake任务
我们创建store/lib/tasks/ryanb.rake:
[code]
task :greet do
puts "Hello World!"
end
task :ask do
puts "How are you?"
end
[/code]
我们现在可以使用rake greet或rake ask来运行
对于相关联的rake任务我们可以这样做:
[code]
task :greet do
puts "Hello World!"
end
task :ask => :greet do
puts "How are you?"
end
[/code]
ask任务依赖于greet任务,当我们运行rake ask时会先调用greet任务
需要Rails环境的任务
[code]
task :pick_winner => :environment do
user = User.find(:first, : order => 'RAND()')
puts "Winner #{user.name}"
end
[/code]
名字空间
[code]
namespace :pick do
task:winner => :environment do
user = User.find(:first, : order => 'RAND()')
puts "Winner #{user.name}"
end
end
[/code]
提取公用方法:
[code]
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
[/code]
资料:
[url=http://docs.rubyrake.org/]Rake Documentation[/url]
[url=http://www.railsenvy.com/2007/6/11/ruby-on-rails-rake-tutorial]Rails Rake Tutorial[/url]
[url=http://www.martinfowler.com/articles/rake.html]Using the Rake Building Language[/url]
我们经常用rake db:migrate来做数据库迁移
我们还可以使用rake -T来列出可得到的rake任务
让我们在store这个Rails程序中创建一个自己的Rake任务
我们创建store/lib/tasks/ryanb.rake:
[code]
task :greet do
puts "Hello World!"
end
task :ask do
puts "How are you?"
end
[/code]
我们现在可以使用rake greet或rake ask来运行
对于相关联的rake任务我们可以这样做:
[code]
task :greet do
puts "Hello World!"
end
task :ask => :greet do
puts "How are you?"
end
[/code]
ask任务依赖于greet任务,当我们运行rake ask时会先调用greet任务
需要Rails环境的任务
[code]
task :pick_winner => :environment do
user = User.find(:first, : order => 'RAND()')
puts "Winner #{user.name}"
end
[/code]
名字空间
[code]
namespace :pick do
task:winner => :environment do
user = User.find(:first, : order => 'RAND()')
puts "Winner #{user.name}"
end
end
[/code]
提取公用方法:
[code]
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
[/code]
资料:
[url=http://docs.rubyrake.org/]Rake Documentation[/url]
[url=http://www.railsenvy.com/2007/6/11/ruby-on-rails-rake-tutorial]Rails Rake Tutorial[/url]
[url=http://www.martinfowler.com/articles/rake.html]Using the Rake Building Language[/url]
本文介绍了如何使用Rake创建自定义任务,包括基本任务定义、依赖关系设置、环境配置及命名空间划分等内容,并提供了实例演示。

被折叠的 条评论
为什么被折叠?



