4

私のページの 1 つのスタイリングを含む css.erb ファイルがあります。その画像の場所に基づいて、特定の画像の URL を事前にフォーマットするヘルパーがあります。

ビューからヘルパー関数を呼び出すと、出力が期待されます (画像の URL を含む文字列)。ただし、css.erb ファイルで呼び出すとundefined method、同じ関数をコピーして css ファイルに貼り付けても、エラーが発生します。

ヘルパーが css ファイルに含まれておらず、無視されているかのようです。

4

1 に答える 1

8

デフォルトでは、テンプレート化された .css ファイルに対してヘルパーを使用できません。これらは、ビューの構築のみを支援することを目的としています。ただし、イニシャライザを使用して、ここに記載されている回避策を試すことができます。

Rails.application.assets.context_class.instance_eval do
  include YourHelperModule
end

あるいは、これが 1 つまたはいくつかのファイルに対してのみ必要な場合は、このコードを .css.erb ファイルの先頭に追加することで、ここに記載されている解決策を使用できます。

<% environment.context_class.instance_eval { include YourHelperModule } %>
于 2012-11-25T04:08:45.463 に答える