2011-04-22 7 views
5

Uso Baffi in Rails 3 con this gem e sto colpendo un roadblock quando si tenta di utilizzare Moustache in un'istanza in cui normalmente utilizzerei yield :parameter.Rails Rendimento con parametro nei baffi

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

Visualizza il messaggio Visualizza:

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

Esiste un modo per riprodurre questo comportamento con i baffi? Sembra che ci può essere un modo di lavorare questo fuori quando il modello viene compilato:

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

Ma sembra che questo sarebbe difficile da lavorare con la mia configurazione corrente utilizzando la gemma mustache_rails3.

Sono anche aperto a tutte le risposte che indicano un buon modo per evitare del tutto l'approccio yield. Sarebbe possibile inserire una logica sufficiente in un tag {{page_title}} per gestire tutti i miei diversi casi di impostazione del titolo, ma questo sembra lontano dall'ideale.

risposta

0

Tutta la logica per i modelli Mustache deve essere inserita nel file di visualizzazione. Ad esempio, il modello show.html.mustache deve avere un file di visualizzazione Ruby associato denominato show.rb in cui è possibile inserire qualsiasi logica personalizzata per il modello.

Il modello userebbe un {{page_title}} chiamata

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

e il file di vista sarebbe definire un metodo page_title compilare il modello

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