2

私が抱えているJavascriptフレームワークの問題のため、属性に二重引用符を使用する必要があります。Railsを使用するときにドキュメントで推奨されているように、Haml :: Template.optionsハッシュを設定しようとしましたが、'には影響しません。オプションを設定している場所に関係なく、アセットのフォルダー。これは、Railsコントローラーによってレンダリングされる通常のActionViewテンプレートで機能しますが、私が下にあるテンプレートでは機能しないことに注意してください。{Rails.root}/app/assets/javascripts/templates/*.html.haml

これは私が持っているものです{Rails.root}/config/initializers/haml.rb

Haml::Template.options[:attr_wrapper] = '"'

# Adds the ability to use HAML templates in the asset pipeline for use with
# Batman.js partials
Rails.application.assets.register_mime_type 'text/html', '.html'
Rails.application.assets.register_engine '.haml', Tilt::HamlTemplate

register_engineまた、使用するようにHaml::Engine変更してみましたがHaml::Template、どちらもレンダリングされますが、上記で設定したオプションは使用できません。

アセットパイプラインでレンダリングするためのHamlオプションを設定するにはどうすればよいですか?スプロケットエンジンのオプションを渡す必要があるようですが?

4

1 に答える 1

0

私はここで解決策を見つけました。モンキーパッチがすべてです。

Haml :: Templateにすでに設定されているオプションを保持するため、このバリエーションが好きです。これをhamlイニシャライザーの最後に置きます。

class Tilt::HamlTemplate
  def prepare
    options = @options.merge(:filename => eval_file, :line => line)
    # Use same options as Haml::Template
    options = options.merge Haml::Template.options
    @engine = ::Haml::Engine.new(data, options)
  end
end
于 2013-01-15T10:36:17.197 に答える