Hola de nuevo :-) 2009/2/23 Michel Martens <[email protected]>: > Holas, > > 2009/2/23 Diego Algorta <[email protected]>: >> >> Hola gente, >> >> Estoy intentando mejorar el código de un (viejo) proyecto Rails heredado... >> >> Suponiendo que tenemos algo como: >> >> https://gist.github.com/f4921b74f10d45f04c38 >> >> Dado un view para el action PostsController#show donde >> se muestran los datos del post, su lista de comentarios y un >> formulario para que el usuario escriba un nuevo comentario, >> buscar la mejor manera de que si el usuario escribe mal el >> captcha se le pueda informar de esto sin que el mismo pierda el >> contenido del comentario que elaboró. De esta forma el usuario >> tendrá una segunda oportunidad para ingresar el comentario sin >> tener que reescribirlo. >> >> La "dificultad" está en que no se puede hacer un redirect porque se >> perdería el contenido del comentario que escribió. Habría que hacer un >> render pero del action `show` de otro controller (el de Posts) para que >> se carguen todas las variables necesarias, etc. >> >> Alternativas (espero que se entienda): >> >> 1. guardar el contenido del comentario en la sesión y redireccionar. No >> me gusta. Chancho y además al usar la CookieStore, tengo poco espacio >> que no quiero desperdiciar. >> >> 2. guardar el contenido del comentario en la base con un flag de "draft" >> o algo así, y redireccionar. El tema es que si realmente tengo un bot >> intentando meter comentarios y fallando en el captcha... voy a tener >> cientos (miles) de inserts en la base que no quiero. Feo. >> >> 3. mover el 99% del código de `PostsController#show` a algo como >> `ApplicationController#load_post_show_data` para llamarlo desde el >> `check_captcha` y directamente hacer un render del template >> `posts_controller/show` en vez del redirect. No me convence. >> >> Tonces? alternativas? >> >> Sí... ya sé... los estoy haciendo pensar too much. :) >> >> Diego >> > > Se me ocurre hacer el post vía AJAX y que degrade en el redirect en el > cual se pierden los datos. >
Dependiendo de la versión de Rails, se puede usar Nested Attributes: http://ryandaigle.com/articles/2009/2/1/what-s-new-in-edge-rails-nested-attributes Saludos, -- Michel _______________________________________________ Ruby mailing list [email protected] http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
