[Ror-es] Duda de concepto sobre partials
Fernando
aaromnido at gmail.com
Fri Dec 8 17:37:09 GMT 2006
Pues muchas gracias a todos. Especialmente a Sebastián porque algo de luz
has arrojado sobre este pobre "novatillo".
La verdad es que no pensaba que el tema era tan complicao cómo parece, y veo
que lo de los components genera cierta controversia.
Así que para seguir la solución aportada por Sebastian me tengo que empollar
primeramente el tema de los components en el libro "Agile..", que ahora
mismo no recuerdo muy bien cómo se usan. Y es que hasta la fecha no los he
utilizado, pero vamos, con ello subiremos un peldañito más en el aprendizaje
de esta maravillosa tecnoogía.
Gracias todos y os seguiré "incordiando" conforme le vaya dando forma y me
atasque... :-)
El día 8/12/06, Sebastian Delmont <sd at notso.net> escribió:
>
> Y la respuesta a la pregunta original seria algo como:
>
> en views/public/show.rhtml
>
> ...
> <%= render_component :controller => "new", :action =>
> "mod_news_component", :params => {:id => @current.id} %>
> ...
>
> (lo de mod_news_component es simplemente una convencion personal de
> llamar _component a todas las acciones que solo son utilizadas como
> componentes, y lo de :params => {...} es simplemente un ejemplo de
> como pasar parametros al componente)
>
> en new_controller
> class NewController
> def mod_news_component
> @news = News.find(params[:id])
> render :template => "news/mod_news_component", :layout => false
> end
> end
>
> y el view, pues como lo quieras.
>
> Es importante el render explicito para el componente, para poder
> decirle que no use layout. En caso contrario, incluiria el layout que
> tengas definido para ese controlador, o el general de la aplicacion,
> y como el componente va insertado dentro de otra pagina que ya
> incluye su propio layout, creo que no se veria muy bonito.
>
>
> Un detalle sobre componentes... los parametros debes pasarlos todos
> en :params. Es posible que puedas pasar :id directamente, pero
> cualquier otro parametro va en :params.
>
> Otro detalle. En :params puedes pasar objetos completos. El tipo de
> cosas que NO puedes hacer en un URL. Asi que en este ejemplo, hubiera
> podido haber dicho algo como :params => {:object => @current} y en
> el componente @news = params[:object], ahorrandome asi el find.
>
>
>
> On Dec 8, 2006, at 11:31 AM, Xavier Noria wrote:
>
> > On Dec 8, 2006, at 4:54 PM, Fernando wrote:
> >
> >> Hola amigos,
> >>
> >> De nuevo recurro a vosotrs para que me ayudéis a aclarar mis ideas.
> >>
> >> Tengo el siguiente problema.
> >>
> >> Estoy mostrando a través de un controlador "public_controller.rb" ,
> >> y por medio del método "show" una serie de páginas en detalle.
> >> Hasta ahora todo va cómo la seda.
> >> Pero el problema me viene cuando he decidido, "sacar por una
> >> ventanita o modulito" en este caso dentro de un div una noticia,
> >> del "new_controller.rb" y el método show. Parar ello creo que lo
> >> normal sería sacarlo por medio de un partial " _mod_news.rhtml".
> >> ¿Pero cómo lo hago sí el controller cargado por URL es "public"?
> >> ¿Creo un método "mod_news" que busque esa noticia que quiero sacar
> >> (la más reciente por ejemlo) y lo invoco en el partial?
> >> O sí no es correcto así, ¿cómo debo plantearlo?
> >
> > La manera de invocar a una accion de otro controlador e insertar el
> > output es render_component. Esta es una funcionalidad que no parece
> > tener mucho futuro porque a DHH mismo no le gusta, su uso esta en
> > general desconsejado (en la edicion actual del Agile se explica esto
> > un poco, DHH tambien hablo de ello en la conferencia).
> >
> > Las partials necesitan que los datos ya esten ahi cuando se procesa
> > el template, si hay partials comunes entre vistas se recomienda
> > factorizar en before filters.
> >
> > -- fxn
> >
> >
> >
> > _______________________________________________
> > Ror-es mailing list
> > Ror-es at lists.simplelogica.net
> > http://lists.simplelogica.net/mailman/listinfo/ror-es
> >
>
> _______________________________________________
> Ror-es mailing list
> Ror-es at lists.simplelogica.net
> http://lists.simplelogica.net/mailman/listinfo/ror-es
>
--
Fernando Val
Web Designer
http://www.fernandoval.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.simplelogica.net/pipermail/ror-es/attachments/20061208/7fe3cf58/attachment.htm
More information about the Ror-es
mailing list