2014-01-07 65 views
0

我正在使用Seed Dump Gem將一些種子數據轉儲到db/seeds.rb。除此之外,我需要在轉儲這三個表後運行一項任務。如何以參數的方式將參數傳遞給Rake任務調用?

我調用db:seed:dump的方式是這樣的:

zeus rake db:seed:dump MODELS=Standard,Category,Brand 

於是,我就重寫此作爲lib/tasks/database.rake如下:

namespace :db do 

    namespace :seed do 
    task(:dump_setup => :environment) do 
     Rake::Task["db:seed:dump"].invoke(:models => "Standard,Category,Brand") 
     puts "did it." 
    end 
    end 

end 

我也有嘗試:

namespace :db do 

    namespace :seed do 
    task(:dump_setup => :environment) do 
     Rake::Task["db:seed:dump"].invoke(:models => ['Standard','Category','Brand']) 
     puts "did it." 
    end 
    end 

end 

我只要有「做到」作爲佔位符,直到我得到這個工作。

這個調用是不是工作。它從我的數據庫中轉儲了數百兆字節。傾倒一切。

我上面所做的工作是基於我在這裏找到的最受歡迎的答案。不知道爲什麼它的工作。

+0

哦我有可以發佈在那裏你可以轉儲所有從任何地方的寶石(IRB,wherevs)也,其添加的方法轉儲方法到所有活動的記錄對象,以便您可以做Model.dump並將其轉儲到seeds.rb?如果我發表它,你會感興趣嗎? – Drew

+0

這聽起來很有趣德魯,我想你會有一些接球者。 – AKWF

回答

2
zeus rake db:seed:dump MODELS=Standard,Category,Brand 

MODELS是一個環境變量。你需要通過ENV調用從屬任務之前設置環境變量:

ENV['MODELS'] = 'Standard,Category,Brand` 
相關問題