Revisando el código de un proyecto en Rails 1.2.x, he recordado que la
única forma de cambiar el layout en una acción en concreto era
invocando a render, con lo cuál tocaba especificar la plantilla de la
acción de nuevo, aunque fuese por defecto.
def new
…
render :template => ‘events/new’, :layout => ‘admin’
end
def edit
render :template => ‘events/new’, :layout => ‘admin’
end
Estoy haciendo lo mismo en un proyecto en Rails 2.x y me pregunto si
hay alguna otra forma menos engorrosa de hacerlo.
Y no, el método ‘layout’ no es adecuado, porque, hasta donde sé, si
haces algo como
layout ‘admin’, :only => [‘new’, ‘edit’]
El resto de acciones se quedan sin layout, en vez de heredar el
genérico, que sería lo óptimo.
–
Manuel, que
piensa que eres una excelente persona y medra en torno a
http://simplelogica.net y/o http://simplelogica.net/logicola/
Recuerda comer mucha fruta y verdura.
Manuel González Noriega
escribió:> def edit
El resto de acciones se quedan sin layout, en vez de heredar el
genérico, que sería lo óptimo.
Yo en Rails2 aún no lo he necesitado y ahora mismo ignoro si hay alguna
mejora, en 1.2 usaba esto:
layout :set_layout
private
def set_layout
# y calculaba aquí el nombre del layout a utilizar,
# en tu caso a partir de la acción invocada
end
Es un pelín más engorroso que usar simplemente layout, pero te evita
indicar la plantilla de cada
acción.
Raul M. - Freelance Web D.
http://raul.murciano.net
On 22/01/2008, Raul M. [email protected] wrote:
end
Es un pelín más engorroso que usar simplemente layout, pero te evita
indicar la plantilla de cada acción.
Sí, al final en el proyecto viejo abstraimos todo a una cosa muy
parecida, pero me sigue pareciendo muy engorroso. Esperaba alguna
mejora mayor en R2. Tampoco he encontrado plugins adecuados.
Mucha gracias, Raul.
–
Manuel, que
piensa que eres una excelente persona y medra en torno a
http://simplelogica.net y/o http://simplelogica.net/logicola/
Recuerda comer mucha fruta y verdura.
Manuel González Noriega
escribió:> Sí, al final en el proyecto viejo abstraimos todo a una cosa muy
parecida, pero me sigue pareciendo muy engorroso. Esperaba alguna
mejora mayor en R2. Tampoco he encontrado plugins adecuados.
Ajá, ¿qué sintaxis te(os) parecería cómoda para manejar esto? Lo digo
porque quizá sea una mejora fácil de incorporar en forma de plugin…
–
Raul M. - Freelance Web D.
http://raul.murciano.net
On 23/01/2008, Raul M. [email protected] wrote:
Manuel González Noriega escribió:
Sí, al final en el proyecto viejo abstraimos todo a una cosa muy
parecida, pero me sigue pareciendo muy engorroso. Esperaba alguna
mejora mayor en R2. Tampoco he encontrado plugins adecuados.
Ajá, ¿qué sintaxis te(os) parecería cómoda para manejar esto? Lo digo
porque quizá sea una mejora fácil de incorporar en forma de plugin…
Sí, eso estaba pensando, en la opción plugin.
A mi me parece que el comportamiento más intuitivo sería que teniendo
dos layouts, application y admin, si especifico layout :admin, :only
=> [:new, :edit], el resto de acciones siguieran cogiendo application.
–
Manuel, que
piensa que eres una excelente persona y medra en torno a
http://simplelogica.net y/o http://simplelogica.net/logicola/
Recuerda comer mucha fruta y verdura.
On 23/01/2008, Damian J. [email protected] wrote:
layout :admin, :only => [:new, :edit], :others => :inherit
Exactamente eso, Damian. Muy elegante.
–
Manuel, que
piensa que eres una excelente persona y medra en torno a
http://simplelogica.net y/o http://simplelogica.net/logicola/
Recuerda comer mucha fruta y verdura.
On Jan 23, 2008, at 8:48 AM, Manuel González Noriega wrote:
A mi me parece que el comportamiento más intuitivo sería que teniendo
dos layouts, application y admin, si especifico layout :admin, :only
=> [:new, :edit], el resto de acciones siguieran cogiendo application.
No creo que se acepte un cambio que rompa tanto el comportamiento
hacia atrás…
Quizás algo como:
layout :admin, :only => [:new, :edit], :others => :inherit