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


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


      Tarjeta de crédito Yahoo! de Banco Supervielle.
Solicitá tu nueva Tarjeta de crédito. De tu PC directo a tu casa. 
www.tuprimeratarjeta.com.ar 
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a