_foo.mustache.haml模板

jsh*_*rpe 2 haml mustache ruby-on-rails-3

我想使用单个haml/mustache模板,如下所示:

.foo
  %h2 {{title}}
Run Code Online (Sandbox Code Playgroud)

我可以提出两种方式:

1)作为部分并传递哈希:

render :partial => 'foo', :mustache => {:title => 'hello world'}
=>
<div class='foo'><h2>hello world</h2></div>
Run Code Online (Sandbox Code Playgroud)

2)作为部分没有在脚本标记内使用的哈希:

:javascript
  render :partial => 'foo'
=>
<script type='text/javascript'>
  <div class='foo'><h2>{{title}}</h2></div>
</script>
Run Code Online (Sandbox Code Playgroud)

我已经尝试过各种文件名组合......"_ foo.mustache.haml",但是rails不会识别该扩展名.

另外,我正在使用ryan bates的mustache_template_handler.rb:http: //railscasts.com/episodes/295-sharing-mustache-templates

jsh*_*rpe 5

所以,这是有效的 - 但它不是真正的模板链接(甚至可能吗?!)

module MustacheTemplateHandler
  def self.call(template)
    haml = "Haml::Engine.new(#{template.source.inspect}).render"
    if template.locals.include? :mustache
      "Mustache.render(#{haml}, mustache).html_safe"
    else
      haml.html_safe
    end
  end
end
ActionView::Template.register_template_handler(:mustache, MustacheTemplateHandler)
Run Code Online (Sandbox Code Playgroud)