5 Stimmen

Rails Yield mit Parameter in Mustache

Ich verwende Mustache in Rails 3 mit diesem Gem und stoße auf eine Blockade, wenn ich versuche, Mustache in einer Instanz zu verwenden, in der ich normalerweise yield :parameter verwenden würde.

    <%= yield :page_title %>

Post-Ansicht anzeigen:

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

Gibt es eine Möglichkeit, dieses Verhalten mit Mustache zu reproduzieren? Es scheint, als gäbe es eine Möglichkeit, dies zu lösen, wenn die Vorlage kompiliert wird:

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

Aber es scheint, dass dies mit meiner aktuellen Konfiguration unter Verwendung des mustache_rails3 Gems umständlich wäre.

Ich bin auch für Antworten offen, die einen guten Weg aufzeigen, um diesen yield-Ansatz ganz zu vermeiden. Es wäre möglich, genug Logik in ein {{page_title}}-Tag zu werfen, um alle meine verschiedenen Fälle der Titelsetzung zu behandeln, aber das scheint weit von ideal zu sein.

0voto

Carlos Ramirez III Punkte 7064

Die gesamte Logik für Ihre Mustache-Vorlagen sollte in die Ansichtsdatei eingefügt werden. Zum Beispiel sollte Ihre Vorlage show.html.mustache eine zugehörige Ruby-Ansichtsdatei namens show.rb haben, in der Sie beliebige benutzerdefinierte Logik für die Vorlage einfügen können.

Die Vorlage würde einen {{page_title}}-Aufruf verwenden

    {{page_title}}

Und die Ansichtsdatei würde eine Methode page_title definieren, um die Vorlage auszufüllen

# in der show.rb-Datei
def page_title
  SettingsList.site_title + " " + @post.title
end

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X