3

Rake任務定義,像以下:新手,約Rake任務語法

desc 'SOME description' 
    task :some_task => :environment do 
    # DO SOMETHING 
    end 

什麼的:some_tasktask :some_task => :environment手段?

是否將在DO SOMETHING部分調用的方法

可以:some_task是描述任務的任意字符串嗎?

回答

4

實際上,當您創建一個耙子任務時,:some_task是您要調用的任務的名稱。

例如,在這種情況下,你會打電話給rake some_task

你也可以定義命名空間爲您的任務:

namespace :my_tasks do 
    desc "My first task" 
    task :first_task => :environment do 
    # DO SOMETHING 
    end 
end 

,然後你會打電話rake my_tasks:first_task在控制檯。

希望它會幫助你,

編輯:

正如Holger Just解釋的,:environment執行「環境」的任務,如果你是在軌道上,加載環境。這可能需要很長時間,但如果您的任務與數據庫一起工作,它也可以幫助您。

+0

爲什麼指向環境?那是什麼意思? –

+1

@ Leem.fin這意味着該任務取決於您的導軌環境,因此它首先被加載 – Stobbej

1

以您爲例,您可以定義一個名爲some_task的任務,可以通過在命令行上調用rake some_task來調用該任務。

這將取決於environment任務,這將是你的新some_task之前的符文。在rails中,environment任務設置了rails環境(加載庫,準備數據庫連接,...),這是非常昂貴的,因此是可選的。