1

Rails 3.0では、CSSスタイルシートを表現する 'Site'モデルにpaperclipにファイルを添付しました。アプリケーションの中には、それぞれsite.color1やsite.color 2のようなサイトの属性を毎回生成するスタイルシートを持つたくさんのサイトがあります。 はその後、我々は$のカラー1のような変数を使用しています.sassファイルを持っており、これらは正しいCSSファイルを生成し、クリップRails 3.1 ActiveRecord Modelオブジェクトにアタッチされたスタイルシートを生成する

でそれをアップロードすると解釈されている。ここSite.rbの関連部分(モデル)があります:

has_attached_file :stylesheet, PAPERCLIP_OPTIONS 

def generate_site_specific_stylesheet(force = false) 
    if use_custom_stylesheet && (force || color_changed?) 
     stylesheets_path = Rails.root + 'app/assets/stylesheets' 
     template = File.read(stylesheets_path + '_site_specific_stylesheet.sass') 
     sass_engine = Sass::Engine.new(template, :load_paths =>[stylesheets_path.to_s, '.'], 
           :template_location => stylesheets_path.to_s, :custom =>   {:site => self}) 
     stylesheet_contents = sass_engine.render 
     puts stylesheet_contents 
     self.stylesheet = StringIO.new stylesheet_contents 
     self.stylesheet.instance_write(:file_name, 'site_stylesheet.css') 
     self.stylesheet.instance_write(:content_type, 'text/css') 
    end 
    true 
end 

問題の権利は、これらのスタイルシートが作成されているときにimage-pathのようなサスヘルパーを認識していないことです。私はこれのための回避策を見つけることができませんでした。カスタムSass関数がモジュール(Sass :: Script :: Functionsモジュール)で定義されていますが、ヘルパーもそこでは動作しません。また、image_pathメソッドを使用する方法を理解できません。ActionView :: Helpers、私はそのモジュールを幸運のない機能モジュールに含めようとしましたが、

誰もがこれについて何か提案がありますか?

答えて

0

image-pathヘルパーはSASSと提携していません。それは私のRails自身のメソッドprovidedです。モデルクラスに次のモジュールを追加してください:

include ActionView::Helpers::AssetTagHelper 
関連する問題