2012-09-11 16 views
8

¿Es posible representar un parcial utilizando un método auxiliar en el que también se pueden pasar variables locales desde la vista en la que se llama al método auxiliar? Por ejemplo, cuando incluyo el código directamente en la vista, que hace que la parcial correctamente:Representación de parciales desde un método auxiliar

<%= render :partial => "add_round", :locals => { :f => f } %> 

Luego se trasladó a un método de ayuda:

def addRound 
    render :partial => "add_round", :locals => { :f => f } 
end 

Entonces me llamaron desde la vista de nuevo con:

<%= addRound %> 

Esto no funcionó con el: locales => {f => f} en el código. Devolvió este error: variable local no definida o método `f '. Sin embargo, el método addRound hizo hacer algo con lo siguiente:

def addRound 
    render :partial => "add_round" 
end 

escritura de esta manera me ha permitido para hacer parciales que no requerían las variables locales para pasar a través (tales como cadenas de texto sin formato). ¿Pero cómo puedo hacer que funcione con: locals => {: f => f} incluido? ¿Hay alguna otra forma de escribir eso?

Muchas gracias.

+0

Pass 'F' como parámetro en el método de ayudante –

Respuesta

13

lo necesario para pasar a faddRound

def addRound(f) 
    render partial: "add_round", locals: { f: f } 
end 

y en la vista

<%= addRound(f) %> 
+0

Gracias Deefour. Eso funcionó perfectamente (con suerte fue solo un error de novato de mi parte). Tengo una pregunta relacionada aquí: http://stackoverflow.com/questions/12358993/add-section-to-form-by-rendering-a-partial-when-link-is-clicked. Específicamente, no puedo obtener la llamada javascript en el link_to para hacer lo que se supone que debe hacer (llamar al método addRound cuando hace clic). Alguna idea sobre eso? Gracias de nuevo. – Josh

+0

Me alegra ayudar; parece que tienes a alguien más ayudando con la otra pregunta. Buena suerte. – deefour

Cuestiones relacionadas