私のページの 1 つのスタイリングを含む css.erb ファイルがあります。その画像の場所に基づいて、特定の画像の URL を事前にフォーマットするヘルパーがあります。
ビューからヘルパー関数を呼び出すと、出力が期待されます (画像の URL を含む文字列)。ただし、css.erb ファイルで呼び出すとundefined method
、同じ関数をコピーして css ファイルに貼り付けても、エラーが発生します。
ヘルパーが css ファイルに含まれておらず、無視されているかのようです。
私のページの 1 つのスタイリングを含む css.erb ファイルがあります。その画像の場所に基づいて、特定の画像の URL を事前にフォーマットするヘルパーがあります。
ビューからヘルパー関数を呼び出すと、出力が期待されます (画像の URL を含む文字列)。ただし、css.erb ファイルで呼び出すとundefined method
、同じ関数をコピーして css ファイルに貼り付けても、エラーが発生します。
ヘルパーが css ファイルに含まれておらず、無視されているかのようです。
デフォルトでは、テンプレート化された .css ファイルに対してヘルパーを使用できません。これらは、ビューの構築のみを支援することを目的としています。ただし、イニシャライザを使用して、ここに記載されている回避策を試すことができます。
Rails.application.assets.context_class.instance_eval do
include YourHelperModule
end
あるいは、これが 1 つまたはいくつかのファイルに対してのみ必要な場合は、このコードを .css.erb ファイルの先頭に追加することで、ここに記載されている解決策を使用できます。
<% environment.context_class.instance_eval { include YourHelperModule } %>