2012-03-06 15 views
7

私はいくつかのコンテンツを埋め込むために私のルビーアプリからのデータを使用するhamlテンプレートを作成しようとしています。 hamlに引数を渡して正しくレンダリングすることは可能ですか?ここで私は私のHAMLテンプレートを取得し、それをレンダリングしています方法は次のとおりです。レンダリング中にrubyオブジェクトをhamlに渡すことはできますか?

template = File.open('path/to/template.haml') 
html = Haml::Engine.new(template.read).render 

だから、それは彼らがページが正しくレンダリングされるように、テンプレートファイルにローカルのRubyスクリプトからオブジェクトを渡すことが可能ですか?または、オブジェクトにhamlファイルをプルすることはできますか?

これがうまくいかないのであれば、私の唯一の考え方は、私にとってもっと面倒なローカル文字列としてテンプレートを構築することです。だから、この仕事のためにもっと効率的な別のコーディングパターンがありますか?

答えて

5

はい、

ドキュメントをチェックする: http://haml.info/docs/yardoc/Haml/Engine.html#render-instance_method

  • (String)をレンダリングする(範囲= Object.new、地元= {}、&ブロック)

として渡します地元の人々

+0

私が理解しているように、「地元の人」はハッシュでなければなりません...そして、そのレンダリング方法にオブジェクトのjsonツリーを取得しようとしています 確かに、しかしこれは限界ですか? – PandaWood

0

ここでは、rubyを使って行う方法の例を示します。

template = File.read('path/to/template.haml') 
html = Haml::Engine.new(template).render(Object.new, :my_object => my_object) 
関連する問題