_foo.mustache.haml шаблоны - PullRequest
       28

_foo.mustache.haml шаблоны

2 голосов
/ 10 января 2012

Я хотел бы использовать один шаблон хамла / усов, например:

.foo
  %h2 {{title}}

То, что я могу сделать двумя способами:

1) В качестве частичного и передаваемого хеша:

render :partial => 'foo', :mustache => {:title => 'hello world'}
=>
<div class='foo'><h2>hello world</h2></div>

2) Как часть без хеша для использования внутри тега скрипта:

:javascript
  render :partial => 'foo'
=>
<script type='text/javascript'>
  <div class='foo'><h2>{{title}}</h2></div>
</script>

Я пробовал различные комбинации имен файлов ... "_foo.mustache.haml", например, однако rails не распознает это расширение.

Также я использую mustache_template_handler.rb от Райана Бейтса: http://railscasts.com/episodes/295-sharing-mustache-templates

1 Ответ

5 голосов
/ 10 января 2012

Итак, это работает - но это не настоящая цепочка шаблонов (это вообще возможно?!)

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)
...