レーキでヘルパーを使用する方法

helper rake ruby-on-rails

レーキでヘルパーメソッドを使用できますか?

  42  6


ベストアンサー

はい、できます。 あなたは単にヘルパーファイルを要求し、そしてあなたのレーキファイルの中にそのヘルパーを含める必要があります(実際にはヘルパーは我々が含めることができるミックスインです)。

たとえば、ここに* app / helpers ディレクトリ内に application_helper *ファイルがあり、これが含まれています。

モジュールApplicationHelper def hi "hi" end end

だからここに私のレーキファイルの内容は次のとおりです。

ApplicationHelperを含めるには "#{Rails.root} / app / helpers / application_helper"が必要です。

名前空間:help do task:こんにちはdoこんにちはend end

これが私のターミナルでの結果です。

神:helper-in-rake arie $レーキヘルプ:こんにちはこんにちは

65


lfender6445が述べたように、Arieの答えのように `include ApplicationHelper`を使うことはあなたのタスクを含むトップレベルのスコープを汚染することになるでしょう。

これはその危険な副作用を回避する別の解決策です。

まず、タスクヘルパーを `app / helpers`に入れてはいけません*。 http://codefol.io/posts/Where-Do-I-Put-My-Code[“自分のコードをどこに置きますか? “

レール「ヘルパー」は非常に具体的にはビューヘルパーである。 それらは自動的にビューに含まれますが、コントローラやモデルには含まれません。 それはわざとです。 _

`app / helpers`はビューヘルパーを対象としており、Rakeタスクはビューではないので、タスクヘルパーを他の場所に置くべきです。 私は `lib / task_helpers`をお勧めします。

`lib / task_helpers / application_helper.rb`内で:

モジュールApplicationHelper def self.hi "hi" end end

あなたの Rakefile`または lib / tasks`の中の `.rake`ファイルの中で:

'task_helpers / application_helper'が必要です

名前空間:タスクを助ける:こんにちはdoはApplicationHelper.hiを置きますend end

ビューヘルパーをレーキタスクに含めるのか、それとも単にレーキタスクのための「ヘルパーメソッド」を含めるのかという質問が最初にあるのかどうかはわかりません。 しかし、ビューとタスクの両方でヘルパーファイルを共有するのは理想的ではありません。 代わりに、ビューとタスクの両方で使用するヘルパーを選び、それらをビューヘルパーとタスクヘルパーの両方に含まれる別の依存関係に移動します。

11


タイトルとURLをコピーしました