Como almaceno el resultado de una busqueda en una cookie?

Hola a todos!

Tengo la siguiente duda: estoy trabajando en un sistema que permite la
búsqueda de productos por diferentes parametros, y deseo almacenar el
resultado de esta búsqueda (las ID’s de los productos) dentro de una
cookie, para despúes llamarlas de distintas partes dentro del sistema.
¿Como puedo hacer eso?

Gracias!

On Apr 22, 2008, at 18:23 , Juan R. wrote:

Tengo la siguiente duda: estoy trabajando en un sistema que permite la
búsqueda de productos por diferentes parametros, y deseo almacenar el
resultado de esta búsqueda (las ID’s de los productos) dentro de una
cookie, para despúes llamarlas de distintas partes dentro del sistema.
¿Como puedo hacer eso?

<%= warnings_estandares_acerca_de_aplicaciones_web_con_estado %>

Has de serializar la coleccion de IDs de algun modo, por ejemplo

# setter, asumiendo que los IDs son enteros
session[:search_product_ids] = @products.map(&:id).join(',')

con codigo compinchado a la vuelta, por ejemplo:

# getter
search_product_ids = session[:search_product_ids].split(',')

rescue []
@products = Product.find(search_product_ids)

– fxn

Eso suponiendo que las sesiones son por cookies. Si no me equivoco por
defecto desde rails dos.

Puede que te interese sacarlo de la sessión, y mantener las sesiones
guardadas en mysql o disco por razones de espacio.

La cantidad de datos almacenados en un cookie es limitado y consume
ancho de banda, no mucho, pero si se usa en varias peticiones… puede
resultar costoso.

Si te interesa acceder a las cookies directamente, escribe cookies

products= Product.find(:all, :limit => 3)
cookies[:data]= Marshal.dump(products)

tralará petición va, petición viene.
products = Marshal.load cookies[:data]

Pero insisto, cuidado con el espacio.

Algún caso en el que podría ser util
cookies[:css_theme] = ‘public/tema_my_feo.css’
cookies[:machine_users] = Marshal.dump
(Marshal.load(cookies[:machine_users]) << current_user.username)

Un Saludo.

On Apr 23, 2008, at 24:29 , [email protected] wrote:

Eso suponiendo que las sesiones son por cookies. Si no me equivoco por
defecto desde rails dos.

Supongo que quieres decir que el mensaje original decia “cookies” y yo
use session sin mas.

Creo que Juan dijo “cookie” pero por la descripcion en realidad se
refiere simplemente a ver los datos entre requests, ya que en Rails no
es muy frecuente usar cookies a mano. Es decir, creo que queria decir
sesion, independientemente del storage.

– fxn

cuidadín con almacenar mucha cosa allí
es peligroso

El 23/04/2008, a las 23:53, Xavier N.
escribió:

Supongo que quieres decir que el mensaje original decia “cookies” y yo

On Apr 24, 2008, at 24:03 , Juan R. wrote:

el usuario debería poder volver a la lista de resultados
encontrados, y
esa lista no se debe perder…

Podrias simplemente poner

<%= link_to "Volver a los resultados", :back %>

en la pagina de detalle.

– fxn

En realidad me refería a sesiones… lo siento, soy nuevo en esto!

Mejor planteo la pregunta de otra forma:

Necesito hacer que el usuario pueda realizar busquedas de productos. La
idea es que todos los productos encontrados puedan ser mostrados como
una lista, la cual tiene una opción de “ver”, en donde se entra a una
pagina con los detalles del producto. Mi problema radica en que despues
el usuario debería poder volver a la lista de resultados encontrados, y
esa lista no se debe perder… por lo tanto había pensado en almacenar
las ID’s encontradas dentro de un arreglo en una sesion y así, cada vez
que el usuario volviese a la lista, si no había realizado una nueva
busqueda sobreescribiendo las ID’s antiguas, el sistema internamente
haría un find con las ID’s almacenadas y los datos serían mostrados en
la lista… se entendio lo que quiero hacer?

Que me recomiendan ustedes?

Es buena mi idea o me estoy liando en tonteras?

Gracias!

2008/4/24 Juan R. [email protected]:

las ID’s encontradas dentro de un arreglo en una sesion y así, cada vez

Que me recomiendan ustedes?

Es buena mi idea o me estoy liando en tonteras?

Si lo necesitas, aparte del enlace javascript de back que te dice
Xavier o de que el usuario utilice el botón de atrás de su navegador,
que es lo mismo, no deberías necesitar almacenar en sesión o dónde sea
otra cosa que la querystring de la búsqueda. Es decir, si yo quiero
que vayas a una búsqueda de Google no necesito ir y apuntar todos los
resultados que salen para pasártelos, simplemente te paso la URL. De
igual forma guardando los términos de búsqueda y cualquier otra
información adicional (página, etc) debes poder replicar los
resultados vistos por el usuario.


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.

Mmm… no sabía de la existencia de eso!

Gracias Xavier!!

PS: Definitivamente necesito aprender mas de RoR

Eso “link_to :back”, es parecido al “redirect_to :back” ?

A mi eso en Internet Explorer me daba problemas si el usuario tenia
ciertas cosas deshabilitadas.

Francesc

2008/4/24 Juan R. [email protected]:

Mmm… no sabía de la existencia de eso!

Gracias Xavier!!

PS: Definitivamente necesito aprender mas de RoR

El helper es Rails. Lo subyacente es javascript. Y lo más subyacente,
la funcionalidad del botón de atrás de tu navegador :wink:


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.

Gracias por la
aclaración.
Un saludo,

Francesc

On Apr 24, 2008, at 24:31 , Francesc E. wrote:

Eso “link_to :back”, es parecido al “redirect_to :back” ?

A mi eso en Internet Explorer me daba problemas si el usuario tenia
ciertas cosas deshabilitadas.

link_to “Algo”, :back genera por debajo un enlace que en onclick va
para atras en la historia del navegador con JavaScript. Como dice
Manuel es lo mismo que darle al boton back del navegador, solo que el
usuario ve un enlace explicito ahi y no se le tiene que “ocurrir” que
debe darle al back.

Esa es una solucion al problema que se plantea en el hilo, pero no
obstante normalmente no vale porque uno normalmente no tiene una
pagina de detalle ad-hoc a la que linkar desde un listado de busqueda.
Normalmente uno tiene una pagina de detalle y a esa se puede llegar
desde mil sitios. Por lo tanto en general un link a “volver al
resultado de la busqueda” no tiene sentido. Y en efecto no se suele
poner (por ejemplo vease Amazon), y el usuario le da al boton back si
acaso :-). Si uno saltó al detalle le da al boton back.

Y en ese momento es cuando la aplicacion ya queda bien porque no se
usa sesion y no se asume una navegacion, etc., que es a donde ibamos a
parar con los warnings que abrian la respuesta inicial:

<%= warnings_estandares_acerca_de_aplicaciones_web_con_estado %>

– fxn

On Apr 24, 2008, at 10:20 , Sergio Gil Pérez de la Manga wrote:

http://api.rubyonrails.com/classes/ActionView/Helpers/UrlHelper.html#M000913

Es verdad, gracias Sergio.

Alguien que use Internet Explorer puede decir si da problemas utilizar
<%= link_to “Something”, :back %>?

Yo la última vez que lo utilizé fué hace un año por ese motivo, una
aplicación funcionaba bien en Firefox, pero en Internet Explorer no
debido a este problema. Que no es un problema de Rails, sino no IE. :wink:

Un saludo,

Francesc

On Thu, Apr 24, 2008 at 9:20 AM, Xavier N. [email protected] wrote:

link_to “Algo”, :back genera por debajo un enlace que en onclick va
para atras en la historia del navegador con JavaScript.

Ojo,

Yo no lo he usado (sólo con redirect_to), pero según la
documentacióncon link_to se comporta igual: usa el referer para crear un enlace
normal y corriente; sólo en el caso de que no haya referer usa el
javascript. Repito, según la documentación, que yo no lo he probado.

http://api.rubyonrails.com/classes/ActionView/Helpers/UrlHelper.html#M000913


Sergio Gil Pérez de la Manga
e-mail > [email protected]
blog > http://www.lacoctelera.com/porras

2008/4/24 Francesc E. [email protected]:

Alguien que use Internet Explorer puede decir si da problemas utilizar
<%= link_to “Something”, :back %>?

Yo la última vez que lo utilizé fué hace un año por ese motivo, una
aplicación funcionaba bien en Firefox, pero en Internet Explorer no
debido a este problema. Que no es un problema de Rails, sino no IE. :wink:

Un saludo,

Yo no lo he usado demasiado, por objeciones éticas :wink: pero si da
algúnproblema me suena que venga más por el fallback que mencionaba muy
acertadamente Sergio que por el javascript. Si no recuerdo mal, IE
tiene o tenía problemas para guardar correctamente el referer, en
ocasiones, lo que haría fallar esta solución en iE sin javascript. No
creo que IE tenga problemas con window.history, pero bueno, siempre me
sorprende, así que no es descartable :slight_smile:


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 Apr 24, 2008, at 10:50 , Francesc E. wrote:

Alguien que use Internet Explorer puede decir si da problemas utilizar
<%= link_to “Something”, :back %>?

Yo la última vez que lo utilizé fué hace un año por ese motivo, una
aplicación funcionaba bien en Firefox, pero en Internet Explorer no
debido a este problema. Que no es un problema de Rails, sino no IE. :wink:

Pero recuerdas en que sentido te dio problemas?

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs