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

Responder a