Problemas con layout y ajax


#1

Hola a todos !!!

Tengo el siguiente problema y quisiera saber que estoy haciendo mal.

Tengo una vista en la cual tengo un

prueba

el cual lo actualizo con una llamada link_to_remote, esto funciona y me
muestra el resultado dentro del div, el problema es que el
link_to_remote llama a un controlador ej: http://pepito/hola el cual
tiene asociado un layout y no me lo muestra dentro del div

O sea aparece el resultado pero sin el layout correspondiente

ej: si el resultado de esta llamada es la palabra hola con un fondo
verde, este solo me devuelve la palabra hola sola

Espero que alguien me pueda dar una pista.

Saludos !!!


#2

2008/10/16 Oscar O. removed_email_address@domain.invalid:

link_to_remote llama a un controlador ej: http://pepito/hola el cual
tiene asociado un layout y no me lo muestra dentro del div

O sea aparece el resultado pero sin el layout correspondiente

ej: si el resultado de esta llamada es la palabra hola con un fondo
verde, este solo me devuelve la palabra hola sola

Quieres decir que le falta aplicar estilo (CSS) a la palabra hola?


#3

Xavier N. wrote:

2008/10/16 Oscar O. removed_email_address@domain.invalid:

link_to_remote llama a un controlador ej: http://pepito/hola el cual
tiene asociado un layout y no me lo muestra dentro del div

O sea aparece el resultado pero sin el layout correspondiente

ej: si el resultado de esta llamada es la palabra hola con un fondo
verde, este solo me devuelve la palabra hola sola

Quieres decir que le falta aplicar estilo (CSS) a la palabra hola?

Hola !

Quiero decir que no cargan el layout de la respuesta, ya sea que tenga
css o un texto de fondo.

Tenes idea de lo que puede ser ? estoy con rails 2.1


#4

2008/10/16 Oscar D. removed_email_address@domain.invalid:

Quiero decir que no cargan el layout de la respuesta, ya sea que tenga
css o un texto de fondo.

Aja, creo que te refieres al aspecto del fragmento de HTML que envias.

Los navegadores aplican los estilos definidos en la pagina a los
nuevos elementos. Si falta estilo en ese fragmento es que no esta
definido en la pagina que lo contiene. Asi sin mas informacion
investigaria por ahi.


#5

Oscar D. wrote:

Hola a todos !!!

Tengo el siguiente problema y quisiera saber que estoy haciendo mal.

Tengo una vista en la cual tengo un

prueba

el cual lo actualizo con una llamada link_to_remote, esto funciona y me
muestra el resultado dentro del div, el problema es que el
link_to_remote llama a un controlador ej: http://pepito/hola el cual
tiene asociado un layout y no me lo muestra dentro del div

O sea aparece el resultado pero sin el layout correspondiente

ej: si el resultado de esta llamada es la palabra hola con un fondo
verde, este solo me devuelve la palabra hola sola

Espero que alguien me pueda dar una pista.

Saludos !!!

Vamos a ver si entendi, el contenido del layout no puede mostrarse
DENTRO DEL DIV?

Si ese es tu problema creo que no etas usando bien el layout.
El proposito de los layouts es mostrar cabeseras o pies de paginas
comunes en las vistas.

Si quieres que cierto contenido se muestre DENTRO de un div es mejor
usar un partial dentro del div

ejemplo:

contenido.... <%= render(:partial => 'nombredeotravista') %>

donde nombredeotravista se almacene con el nombre:
_nombredeotravista.html.erb


#6

Daniel E. wrote:

Oscar D. wrote:

Hola a todos !!!

Tengo el siguiente problema y quisiera saber que estoy haciendo mal.

Tengo una vista en la cual tengo un

prueba

el cual lo actualizo con una llamada link_to_remote, esto funciona y me
muestra el resultado dentro del div, el problema es que el
link_to_remote llama a un controlador ej: http://pepito/hola el cual
tiene asociado un layout y no me lo muestra dentro del div

O sea aparece el resultado pero sin el layout correspondiente

ej: si el resultado de esta llamada es la palabra hola con un fondo
verde, este solo me devuelve la palabra hola sola

Espero que alguien me pueda dar una pista.

Saludos !!!

Vamos a ver si entendi, el contenido del layout no puede mostrarse
DENTRO DEL DIV?

Si ese es tu problema creo que no etas usando bien el layout.
El proposito de los layouts es mostrar cabeseras o pies de paginas
comunes en las vistas.

Si quieres que cierto contenido se muestre DENTRO de un div es mejor
usar un partial dentro del div

ejemplo:

contenido.... <%= render(:partial => 'nombredeotravista') %>

donde nombredeotravista se almacene con el nombre:
_nombredeotravista.html.erb

Ahhhh OK

ahora me quedo mas claro

por eso me pasaba que cuendo entraba a http://pepito/hola

funcionaba perfecto con el layout

y cuando llamaba a http://pepito/hola desde una llamada ajax para que me
lo muestre dentro de un div no me mostraba el layout

ahora esto es a partir de rails 2.1 o siempre fue asi?

Gracias por tu ayuda !!!

Saludos !!!


#7

Oscar D. wrote:

Hola a todos !!!

Tengo el siguiente problema y quisiera saber que estoy haciendo mal.

Tengo una vista en la cual tengo un

prueba

el cual lo actualizo con una llamada link_to_remote, esto funciona y me
muestra el resultado dentro del div, el problema es que el
link_to_remote llama a un controlador ej: http://pepito/hola el cual
tiene asociado un layout y no me lo muestra dentro del div

O sea aparece el resultado pero sin el layout correspondiente

ej: si el resultado de esta llamada es la palabra hola con un fondo
verde, este solo me devuelve la palabra hola sola

Espero que alguien me pueda dar una pista.

Saludos !!!

No entiendo cuál es precisamente el problema. Pero te paso una receta,
de novato. Yo defino el layout condicionalmente de acuerdo a cómo se
invoque, por ejemplo si se invoca al index, defino que se use el layout
standard, sino que no se use ningún layout:

layout proc { |controller| controller.url_for =~
/#{controller.controller_name}$/ ? ‘standard’ : nil }

Lo que estoy diciendo es que el layout va a ser standard si la url que
lo solicita termina con el nombre del controlador, sino es nil (no usar
layout).

También podés usar layouts diferentes para cada método que se invoqueen
un conotrolador, por ejemplo:

layout proc { |controller|
case controller.url_for
when /metodo1$/ ‘layout1’
when /metodo2$/ ‘layout2’
else nil
end
}

(No se si la expresión regular funciona en el case y si son necesarios
los : (dos puntos))

Espero que te sea útil.

Un saludo.


#8

ahora esto es a partir de rails 2.1 o siempre fue asi?

Gracias por tu ayuda !!!

Saludos !!!

A la orden!

Creo que siempre ha sido así.

De todas formas te sugiero que te compres un libro o te documentes mas
en internet sobre estos conceptos básicos.

Exito!