2011-04-22 8 views
5

Mustache in Rails 3をthis gemと一緒に使用しています。通常、yield :parameterを使用するインスタンスでMustacheを使用しようとすると、ロードブロッキングが発生します。Rustield with Parameters with Moustache

<html> 
    <head> 
    <title><%= yield :page_title %></title> 
    </head> 
</html> 

表示ポストビュー:

<% content_for :page_title do %> 
    <%= SettingsList.site_title + " " + @post.title %> 
<% end %> 

口ひげでこの現象を再現する方法はありますか?テンプレートがコンパイルされたときにこれを動作させる方法があるかもしれないことを表示されます。

mustache = MustacheClass.new 
mustache[:yield_page_title] = content_for(:page_title) 

しかし、それはそれはmustache_rails3の宝石を使用して私の現在の設定で動作するように厄介であろうと思われます。

私はこのyieldのアプローチを完全に回避する良い方法を指摘している回答にも公開しています。 {{page_title}}タグに十分なロジックを投げて、タイトルを設定する私の異なるすべてのケースを処理することは可能ですが、これは理想とはかけ離れています。

答えて

0

Mustacheテンプレートのロジックはすべて、ビューファイルに入れる必要があります。たとえば、show.html.mustacheテンプレートには、テンプレート用のカスタムロジックを置くことができるshow.rbというRubyビューファイルが関連付けられている必要があります。

テンプレートは、テンプレートを埋めるためにpage_titleメソッドを定義します{{page_title}}コール

<html> 
    <head> 
    <title>{{page_title}}</title> 
    </head> 
</html> 

とビューファイルを使用します

# inside show.rb 
def page_title 
    SettingsList.site_title + " " + @post.title 
end