如何使用佣工耙?(How do I use helpers in rake?)

2019-08-08 03:36发布

我可以使用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?