2016-08-25 16 views
0

我有執行Nokogiri的方法。即下載頁面,提取內容,複製到另一個表格......等等。我可以在佣金任務中包含幫手方法

此方法是內部幫助程序,我需要通過rake任務定期運行。

什麼是調用DRY任務中方法的正確方法。

移動代碼到任務文件 移動到模型,普通紅寶石 一些其他的建議....?

請提供rake任務的例子包括幫手

BTW:我不喜歡引進工作,由於加入其他基礎設施問題。我現在更喜歡rake任務。在未來,我想轉移到一些後臺作業框架,如Sidekiq或類似的

回答

3

當你定義一個rake任務時,你可以加載你的環境。從Using helpers in model: how do I include helper dependencies?我瞭解到,你可以在模型中包含助手。將他們納入任務也應該有效。

task :my_task => :environment do 
    include ActionView::Helpers 
    # call a helper 
end 

從乾燥的角度來看,我認爲這很好 - 你不是在重複自己。

但是,您也可以在通用的全局訪問類/模塊中定義代碼,而不必在此處使用此include

您可以在config/initializers的任何文件中定義泛型類/模塊,並且它可以在任何地方訪問。

您還可以使用lib目錄如果添加此行config/application.rb

config.autoload_paths << Rails.root.join('lib') 

如果你寫一個模塊,你可以將其include在你的助手文件。

但我想說這實在是一個偏好問題。你基本上使用相同的代碼,這只是它如何組織的問題。

+1

很好的答案。請通過添加特定的幫助程序(如包含ActionView :: Helpers :: Myhelper)來改進它。另外「你可以把它包含在你的幫助文件中。」你的意思是:「在輔助模塊中包含另一個模塊」? –

相關問題