--- 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 :)

Saludos!

----------------------------------------------------------------------------
EmmanuelOga.WordPress.com


      Yahoo! Encuentros.

Ahora encontrar pareja es mucho más fácil, probá el nuevo Yahoo! Encuentros 
http://yahoo.cupidovirtual.com/servlet/NewRegistration
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a