2016-08-25 22 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)来改进它。另外“你可以把它包含在你的帮助文件中。”你的意思是:“在辅助模块中包含另一个模块”? –

相关问题