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. -- Michel _______________________________________________ Ruby mailing list [email protected] http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
