其實我想要一個Capistrano腳本(這是基於Rake的)。Rake元編程:如何從列表中創建多個任務
如何轉換幾個任務是這樣的:
desc 'Runs rake db:seed'
task :seed do
on roles :db do
within release_path do
with rails_env: fetch(:rails_env) do
execute :rake, "db:seed"
end
end
end
end
弄成這個樣子:
task_list = %i(
db:seed
db:reset
db:migrate
db:seed:testusers
db:seed:testorders
)
task_list.each do |task_name|
desc %(Runs rake #{task_name})
task :task_name do
on roles :db do
within release_path do
with rails_env: fetch(:rails_env) do
execute :rake, task_name
end
end
end
end
end
我的問題是,該task_name
被用作一個環境中設置的關鍵任務定義。
如何以這種方式定義多個任務?
你想'task task_name',而不是'task:task_name'。前者將創建一個名稱爲變量「task_name」的值的任務。後者將創建一個名爲':task_name'的任務。 –