我有执行 Nokogiri 的方法。即下载页面、提取内容、复制到另一个表...等。
这个方法在 helper 内部,我需要通过 rake 任务定期运行。
在 DRY 任务中调用方法的正确方法是什么。
将代码移动到任务文件 转到模型,普通 ruby 其他一些建议....?
请提供包含 helper 的 rake 任务示例
顺便说一句:由于添加了另一个基础设施问题,我不喜欢介绍工作。我现在更喜欢 rake 任务。将来我想转向一些后台作业框架,如 Sidekiq 或类似的
最佳答案
当您定义一个 rake 任务时,您可以加载您的环境。来自 Using helpers in model: how do I include helper dependencies?我了解到您可以在模型中包含助手。将它们包括在任务中也应该有效。
task :my_task => :environment do
include ActionView::Helpers
# call a helper
end
从 DRY 的角度来看,我认为这很好 - 你没有重复自己。
但您也可以在通用的、全局可访问的类/模块中定义代码,而不必在此处使用此 include
。
您可以在 config/initializers
中的任何文件中定义通用类/模块,并且可以在任何地方访问它。
如果将此行添加到 config/application.rb
,您也可以使用 lib
目录:
config.autoload_paths << Rails.root.join('lib')
如果您已经编写了一个模块,则可以将其包含
到您的Helpers 文件中。
但我想说这真的是一个偏好问题。无论哪种方式,您基本上都有相同的代码,这只是代码组织方式的问题。
关于ruby-on-rails - 我可以在 rake 任务中包含辅助方法吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39136847/