2010-07-11 14 views
12

Hier ist, wie ich die Werte/Variable auf den Teil passieren:Werte teilweise Weitergabe in Schienen 3

<%= render "partials/banner", :locals => {:text_1 => t(:"main.home.banner_text_1"), 
              :text_2 => t(:"main.home.banner_text_2") } %> 

dann im Teil:

<%= text_1 %> <%= text_2 %> 

aber „undefiniert lokale Variable oder Methode immer text_1 "

Wo sollte ich die Variable festlegen, damit sie von allen Ansichten und Layouts in meiner App aus zugänglich ist?

Danke!

+0

würde ich versucht sein, nur setzen auf <% = t ("main.home.banner_text_1")%> direkt im Teil - können Sie damit durchkommen? Oder sind sie tatsächlich variabel? – sarnold

Antwort

28

Wenn Sie etwas haben, das über alle Ansichten angezeigt werden muss Sie auch eine application_helper Methode erstellen können, Beispiel: banner('Text', 'Content')

Try this:

Startseite:

<%= render :partial => 'layouts/test', 
      :locals => {:text_1 => t(:'text_1'), :text_2 => t(:'text_2')} 
%> 

Teil :

<%= text_1 %> <%= text_2 %> 
+4

danke das Hinzufügen von ": partially =>" endlich das Problem gelöst. Sie fragen sich, warum es nicht ohne geht? Wie auch immer, ich muss das über alle meine Ansichten anzeigen lassen - können Sie mehr Details zur Verfügung stellen, wie die Hilfsmethode banner ('text', 'content') aussehen sollte? Prost – bogumbiker

12

Ich glaube, dass Ra ils 3 hat sich verändert, wie Sie Teil-Variablen übergeben, um so etwas wie folgt aus:

<%= render :partial => 'layouts/test', 
     :text_1 => t(:'text_1'), :text_2 => t(:'text_2') %> 

Rails, dass seit analysieren wird und: text_1 ist kein bekannter Schlüssel (wie: Sammlung oder: as), übergibt sie an die Teil selbst.

Sie können darauf zugreifen über text_1 oder text_2