簡體   English   中英

我如何在佣金中使用佣工?

[英]How do I use helpers in rake?

我可以在rake中使用輔助方法嗎?

是的你可以。 您只需要需要幫助文件,然后在rake文件中包含該幫助程序(實際上幫助程序是我們可以包含的mixin)。

例如,這里我在app / helpers目錄下有一個application_helper文件,其中包含:

module ApplicationHelper
  def hi
    "hi"
  end
end

所以這是我的rake文件的內容:

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

正如lfender6445所提到的那樣,使用include ApplicationHelper ,就像在Arie的回答中一樣,將污染包含你的任務的頂級范圍。

這是一種避免不安全副作用的替代解決方案。

首先,我們應該把我們的任務佣工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

在你的Rakefilelib/tasks.rake文件中:

require 'task_helpers/application_helper'

namespace :help do
  task :hi do
    puts ApplicationHelper.hi
  end
end

我不確定這個問題是否最初是在rake任務中包含視圖助手,或者只是Rake任務的“幫助方法”。 但是在兩個視圖和任務之間共享幫助文件並不理想。 相反,在兩個視圖和任務中使用要使用的幫助程序,並將它們移動到一個單獨的依賴項中,該依賴項包含在視圖幫助程序和任務幫助程序中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM