2010-07-11 6 views
12

Ecco come passo i valori/variabile al partial:passaggio di valori a parziale rotaie 3

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

poi in parziale:

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

ma ottenere "indefinito variabile locale o metodo text_1 "

Dove devo impostare la variabile in modo che possa essere accessibile da tutte le viste e layout nella mia app?

Grazie!

+0

sarei tentato di appena messo <% = t ("main.home.banner_text_1")%> proprio nel parziale - si può farla franca? O sono effettivamente variabili? – sarnold

risposta

28

Se avete qualcosa che deve essere visualizzato su tutti i vostri punti di vista si può anche creare un metodo application_helper, Esempio: banner('Text', 'Content')

Prova questo:

pagina principale:

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

parziale :

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

grazie aggiungendo ": partial =>" finalmente risolto il problema. Ti stai chiedendo perché non funziona senza? In ogni caso sì, ho bisogno di visualizzarlo in tutte le mie visualizzazioni: puoi fornire maggiori dettagli su come dovrebbe essere il metodo di supporto di banner ('testo', 'contenuto')? evviva – bogumbiker

12

Credo che Ra ils 3 ha cambiato il modo di passare le variabili parziali, a qualcosa di simile:

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

Rails analizzerà che e dato: text_1 non è una chiave nota (come: raccolta o: come), si passa al parziale si.

È possibile accedervi tramite text_1 o text_2