J'ai la question suivante:à l'aide searchlogic avec les associations HABTM
J'ai deux classes dans mon application rails, reliés par une association HABTM, comme ceci:
#ad.rb
has_and_belongs_to_many :specs
#spec.rb
has_and_belongs_to_many :ads
Rejoints par une table ads_specs. J'essaie d'effectuer une recherche sur la classe Ad en utilisant l'excellent gemme searchlogic. Tout s'est bien passé jusqu'à ce que je veuille retourner toutes les annonces qui ont toutes les spécifications sélectionnées, pas l'une d'entre elles.
J'ai essayé @ads = Ad.specs_id_like_all(id1, id2, id3)
mais sans résultat, car je pense qu'il essaie de faire correspondre une spécification avec un id de "id1, id2, id3". J'ai également essayé de .split les ids ou de les taper directement dans un tableau mais rien n'a fonctionné.
Ma requête de recherche exacte est:
if params[:search]
@ads = Ad.search(:price_lte => params[:search][:price],
:rulaj_lte => params[:search][:rulaj],
:fabrication_date_gte => Date.new(params[:search][:"an_fabr(1i)"].to_i,"01".to_i,"01".to_i)).specs_id_like_all(2, 457, 233)
else
@ads = Ad.all
end
gars Avez-vous une idée comment pourrais-je résoudre ce problème? Je jure que c'est la dernière fois que j'utilise les associations HABTM dans une application rails, mais il est trop tard pour passer à une version polymorphe si tard dans le processus de développement :).