si todo falla.... lea el manual :D :D :D .... casi nuna falla . :D :D :D :D
-- :: nelson :: artesano de software http://netflux.com.ar On 12/20/07, Marcelo Giorgi <[EMAIL PROTECTED]> wrote: > Gente, > > He resuelto el problema de consultar con acts_as_ferret sobre múltiples > modelos. Apartenemente era un problema de configuración de índices :(... > > En la documentación de ferret se mencionan 'gotchas' ( > http://projects.jkraemer.net/acts_as_ferret/wiki/gotchas), > de posibles problemas que puedan surgir, y bueno por suerte y con razón, > este constituia uno de ellos ;) > > En particular, como dice la última sección, antes de utilizar consultas > sobre múltiples modelos es necesario crear los índices sobre los n-modelos > sobre los cuales se va a consultar, como lo muestra el ejemplo de la > documentación. > > Así que caso resuelto :D, lo menciono por si alguien tuvo un problema > similar para que tome en cuenta esto. > > Saludos, > Marcelo > > > On Dec 15, 2007 12:36 AM, Emmanuel Oga < [EMAIL PROTECTED]> > wrote: > > > > --- Emmanuel Oga <[EMAIL PROTECTED]> > > escribió: > > > > > > > > > > > --- Marcelo Giorgi > > > < [EMAIL PROTECTED]> > > > escribió: > > > > > > > Gente, > > > > > > > > Quiero comentarles mis avances, hopefully alguien > > > > sepa como seguir a partir > > > > de aquí ;) > > > > > > > > Encontre > > > > > > > > > > http://nasir.wordpress.com/2007/10/25/full-text-search-using-ferret-acts_as_ferret-with-rails/ > , > > > > que menciona que el método find_with_ferret (en > > > > lugar de multi_search), > > > > desarrollado en los últimos meses (ya en versión > > > > stable), esta integrada con > > > > will_paginate. > > > > > > > > Nuevamente, esto funciona bárbaro, para 1 modelo > > > :(, > > > > en este caso mi código > > > > luce así: > > > > > > > > *class Article < **ActiveRecord::Base* > > > > * acts_as_ferret :store_class_name => true* > > > > * ...* > > > > *end > > > > * > > > > El controlador luce así: > > > > > > > > *class SearchResultsController < > > > > ApplicationController* > > > > * ..* > > > > * def search* > > > > * @collection = Article.find_with_ferret > > > > params[:q], :page => > > > > params[:page], :per_page => 1* > > > > * end* > > > > * ...* > > > > *end > > > > * > > > > Luego, cuando quiero realizar una busqueda sobre 2 > > > > modelos (Article y > > > > NewsItems), realizo los siguientes cambios: > > > > > > > > *class NewsItem < ActiveRecord::Base > > > > * > > > > * acts_as_ferret :store_class_name => true* > > > > * ...* > > > > *end > > > > * > > > > Y modifico el controlador de la siguiente forma: > > > > > > > > *class SearchResultsController < > > > > ApplicationController* > > > > * ..* > > > > * def search* > > > > * @collection = Article.find_with_ferret > > > > params[:q], :page => > > > > params[:page], :per_page => 1, :multi => > > > [NewsItem]* > > > > * end* > > > > * ...* > > > > *end > > > > * > > > > Este código me produce el siguiente error: > > > > > > > > *RuntimeError in Search resultController#index > > > > ':store_class_name => true' required for > > > > multi_search to work* > > > > > > > > Bueno esta sería la nueva situación, si alguien > > > > tiene idea que pueda estar > > > > pasando estaría buenisimo ;) > > > > > > > > salutes, > > > > marcelo. > > > > > > > > On Dec 13, 2007 9:51 AM, Marcelo Giorgi > > > > <[EMAIL PROTECTED]> > > > > wrote: > > > > > > > > > > > > > > Hola gente, > > > > > En esta oportunidad la consulta que tengo para > > > > hacerles esta más > > > > > relacionada a Rails, quizas alguno de ustedes, > > > con > > > > su expertice, me puedan > > > > > tirar una línea en la oscuridad... > > > > > > > > > > Estoy trabajando en un proyecto en donde > > > utilizo: > > > > roar ( > > > > > > > > > > http://agilewebdevelopment.com/plugins/roar_offers_automated_rails > > > > > , que internamente utiliza paginator-1.0.9 para > > > la > > > > paginación ), para el > > > > > manejo de ABMs, y will_paginate ( > > > > > > > > > > > > > > > http://www.davidrv.com/web/blog/showNew/paginacion-a-medida-en-ruby-on-rails-will-paginate), > > > > > que ofrece funcionalidades de paginación. > > > > > > > > > > El problema se dió cuando quise integrar > > > > will_paginate con acts_as_ferret > > > > > (para agregar funcionalidades de búsqueda sobre > > > > varios modelos a la app). > > > > > Encontre algunos links que hacen referencia a la > > > > integración de ambos > > > > > plugins, como lo menciona Emmanuel en su blog :D > > > ( > > > > > http://emmanueloga.wordpress.com/2007/09/ ) > > > > > > > > > > Hasta ahí todo bien, integrar acts_as_ferret con > > > > will_paginate utilizando > > > > > el método paginate_search sobre un modelo > > > Article > > > > (por ejemplo), anda > > > > > bárbaro! > > > > > > > > > > Pero, la intensión de utilizar acts_as_ferret > > > era > > > > hacer uso de la búsqueda > > > > > a través de varios modelos, a través del método > > > > multi_search, por ej. Ahí es > > > > > donde se me complico, o por lo menos, no > > > encontre > > > > una solución que integre > > > > > act_as_ferret y will_paginate cuando el primero > > > > consulta sobre múltples > > > > > modelos (multi_search). > > > > > > > > > > De hecho he encontrando, en RAILS forum, el > > > > siguiente thread > > > > > > > > http://www.railsforum.com/viewtopic.php?pid=47211, > > > > que presenta el mismo > > > > > problema y allí se sugiere utilizar > > > > > > > > > paginating_find< > http://cardboardrocket.com/pages/paginating_find>en > > > > lugar de will_paginate; intente seguir este > > > esquema > > > > pero tampoco me > > > > > anduvo, instale el paginating_find pero me > > > comenzó > > > > a dar algunos errores > > > > > (quizas por incompatibildad con los otros > > > > paginators que mencione > > > > > anteriormente y que tengo instalados en mi > > > app).. > > > > > > > > > > Any thoughts ? > > > > > > > > > > saludos y gracias, > > > > > marcelo. > > > > > > > > > > > > > > > > > > > > > -- > > > > Ing. Marcelo Giorgi > > > > > _______________________________________________ > > > > Ruby mailing list > > > > [email protected] > > > > > > > > > > http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar > > > > > > > > > > Marcelo, a decir verdad mis busquedas siempre han > > > sido > > > medio modestas por lo que no investigue la forma de > > > hacer busquedas sobre dos modelos a la vez. Pero > > > recuerdo que podias agregar a la info indexada por > > > ferret el resultado de un metodo de tu model, por > > > ejemplo en tu caso: > > > > > > class Article < **ActiveRecord::Base* > > > has_many :news_items > > > acts_as_ferret :fields => %w|campo1 campo2|, > > > :methods => %w|nitems| > > > > > > def nitems > > > self.news_items.map { |a| a.name }.join(" ") > > > end > > > end > > > > > > Si no logras hacer funcionar la busqueda con > > > multiples > > > models, quizas eso te sirva. Si lo logras, despues > > > contanos :) > > > > > > > mmm en la api methods no figura.. que raro recordaba > > que si!!! Pero creo que se puede hacer... de alguna > > manera... :) > > _______________________________________________ Ruby mailing list [email protected] http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
