Método controlador sin template


#1

Hola, deseo ejecutar un método de un controlador pero no quiero que me
redireccione a una template, como se podría hacer??.


#2

Yo no pierdo la fe y sé que algún día miraréis la documentación antes
de preguntar:

http://api.rubyonrails.com/classes/ActionController/Base.html#M000266


#3

Imobach González Sosa wrote:

El Friday 02 February 2007 05:44:45 gamexs escribió:

Hola, deseo ejecutar un método de un controlador pero no quiero que me
redireccione a una template, como se podría hacer??.

¿Y qué quieres que haga? ¿Que te redirija a otro sitio? ¿Que te mande
una
cabecera HTTP en concreto?


Imobach González Sosa
correo-e: imobachgs en banot punto net
jabber id: osoh en jabberes punto org
web: http://www.banot.net/~osoh/
blog: http://devnull.blogs.banot.net/

No quiero que me redirija a alguna parte, solo que ejecute la acción y
nada más.


#4

On 2/3/07, gamexs removed_email_address@domain.invalid wrote:

¿Y qué quieres que haga? ¿Que te redirija a otro sitio? ¿Que te mande
una
cabecera HTTP en concreto?

Copiado del enlace que Fernando ha enviado hace 10 horas (10 horas que
te hubieras ahorrado si lo hubieras leído):

Rendering nothing

Rendering nothing is often convenient in combination with Ajax calls
that perform their effect client-side or when you just want to
communicate a status code. Due to a bug in Safari, nothing actually
means a single space.

Renders an empty response with status code 200

render :nothing => true

Renders an empty response with status code 401 (access denied)

render :nothing => true, :status => 401

En serio, cuando alguien le dice a alguien que se lea la
documentación, no es porque sea un pitufo gruñón al que no le sale de
los huevos ayudar. Es porque es lo mejor y más rápido para .


Sergio Gil Pérez de la Manga
e-mail > removed_email_address@domain.invalid
blog > http://www.lacoctelera.com/porras


#5

Sergio Gil Pérez de la Manga wrote:

On 2/3/07, gamexs removed_email_address@domain.invalid wrote:

�Y qu� quieres que haga? �Que te redirija a otro sitio? �Que te mande
una
cabecera HTTP en concreto?

Copiado del enlace que Fernando ha enviado hace 10 horas (10 horas que
te hubieras ahorrado si lo hubieras le�do):

Rendering nothing

Rendering nothing is often convenient in combination with Ajax calls
that perform their effect client-side or when you just want to
communicate a status code. Due to a bug in Safari, nothing actually
means a single space.

Renders an empty response with status code 200

render :nothing => true

Renders an empty response with status code 401 (access denied)

render :nothing => true, :status => 401

En serio, cuando alguien le dice a alguien que se lea la
documentaci�n, no es porque sea un pitufo gru��n al que no le sale de
los huevos ayudar. Es porque es lo mejor y m�s r�pido para t�.


Sergio Gil P�rez de la Manga
e-mail > removed_email_address@domain.invalid
blog > http://www.lacoctelera.com/porras

render :nothing => true

No es lo que quiero, o quizás lo estoy haciendo mal. Coloco esa linea al
final de la acción del controlador y al ejecutarla me aparece una página
en blanco.

Tengo un formulario que utilizo para subir un archivo, envío el
formulario a la acción correspondiente para que el archivo se guarde.
Pero no quiero que me muestre nada más, sólo que se ejecute la acción y
se quede en la misma página, el formulario, utilizado para subir el
archivo, lo escondo mediante Ajax.

Espero haberme explicado bien.


#6

El Friday 02 February 2007 05:44:45 gamexs escribió:

Hola, deseo ejecutar un método de un controlador pero no quiero que me
redireccione a una template, como se podría hacer??.

¿Y qué quieres que haga? ¿Que te redirija a otro sitio? ¿Que te mande
una
cabecera HTTP en concreto?


Imobach González Sosa
correo-e: imobachgs en banot punto net
jabber id: osoh en jabberes punto org
web: http://www.banot.net/~osoh/
blog: http://devnull.blogs.banot.net/


#7

Exacto, no existe esa “petición sin respuesta”, porque HTTP es un
protocolo de petición y respuesta, el cliente siempre se quedará
esperando la respuesta y la mostrará. Si la respuesta es vacía, pues
mostrará una página vacía.

Así que la solución pasa por que en vez de realizar la petición por un
POST “normal y corriente”, la hagas con Ajax (que por lo que yo sé no
se puede) o con un iframe (que es lo que hace el plugin que comenta
Fernando).

Saludos,


Sergio Gil Pérez de la Manga
e-mail > removed_email_address@domain.invalid
blog > http://www.lacoctelera.com/porras


#8

Entonces te pido disculpas, porque te he entendido mal.

Si el formulario sólo sube un archivo te recomiendo que le eches un
vistazo al plugin upload_progress [1], que te permite una subida
asíncrona del fichero vía Ajax, que a su vez, te permite dejar al
usuario en la misma página en la que se encontraba el formulario sin
tener que recargar.

El plugin ya da un helper para la subida en Ajax, por lo que es muy
sencillo de utilizar.

[1] http://plugins.radrails.org/directory/show/30


#9

ok, gracias a todos. Veré lo del helper.