我可以使用helper方法抽佣?
Answer 1:
是的你可以。 您只需将需要帮助文件,然后包括你耙文件(这实际上是一个助手是一个mixin,我们可以包括)内部的帮手。
例如,在这里我有应用程序/佣工目录内的文件application_helper包含此:
module ApplicationHelper
def hi
"hi"
end
end
所以这里是我的耙文件的内容:
require "#{Rails.root}/app/helpers/application_helper"
include ApplicationHelper
namespace :help do
task :hi do
puts hi
end
end
这里是我的终端结果:
god:helper-in-rake arie$ rake help:hi
hi
Answer 2:
如前所述lfender6445,使用include ApplicationHelper
,在阿里的答案,会污染包含你的任务顶层范围。
下面是避免了不安全的副作用的替代解决方案。
首先,我们不应该把我们的任务佣工app/helpers
。 要引用“我应该把我的代码?” 在codefol.io:
Rails的“助手”都非常明确视图助手。 它们会自动包含在视图,而不是在控制器或模型。 这是故意的。
由于app/helpers
是为视图助手,以及Rake任务都没有意见,我们应该把我们的任务助手别处。 我推荐lib/task_helpers
。
在lib/task_helpers/application_helper.rb
:
module ApplicationHelper
def self.hi
"hi"
end
end
在你Rakefile
或.rake
文件lib/tasks
:
require 'task_helpers/application_helper'
namespace :help do
task :hi do
puts ApplicationHelper.hi
end
end
我不知道如果这个问题本来询问,包括视图助手在耙任务,或只是“辅助方法”为Rake任务。 但它不是理想的跨两个视图和任务共享一个辅助文件。 相反,把你想在这两个视图和任务使用助手,并将其移动到既是一个视图助手,并在任务帮手包括一个单独依赖。
文章来源: How do I use helpers in rake?