2011-04-22 10 views
5

Używam wąsów w Railsach 3 z this gem i uderzam w blokadę drogi przy próbie użycia wąsów w instancji, w której normalnie użyłbym yield :parameter.Wydajność szyny z parametrem w wąsy

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

Pokaż post Zobacz:

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

Czy istnieje sposób, aby odtworzyć ten problem z wąsem? Wydaje się, że nie może być droga do pracy na to uwagę, gdy szablon jest kompilowany:

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

Ale wydaje się, że byłoby to niezręczne wypracować z moja obecna konfiguracja za pomocą gem mustache_rails3.

Jestem również otwarty na wszelkie odpowiedzi, które wskazują na dobry sposób na uniknięcie tego podejścia w całości: yield. Byłoby możliwe wrzucenie wystarczającej logiki do znacznika {{page_title}}, aby obsłużyć wszystkie moje różne przypadki ustawienia tytułu, ale wydaje się to dalekie od ideału.

Odpowiedz

0

Cała logika dla szablonów wąsów powinna zostać umieszczona w pliku widoku. Na przykład szablon show.html.mustache powinien mieć skojarzony plik widoku Ruby o nazwie show.rb, w którym można umieścić dowolną niestandardową logikę dla szablonu.

Szablon użyłby {{page_title}} połączenia

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

a plik widoku byłoby zdefiniować metodę page_title wypełnić w szablonie

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