=?iso-8859-1?q?G=E9n=E9ration?= de formulaire de recherche

Bonjour à tous,

actuellement en phase finale pour mon application, je suis à la
recherche d’un moyen générique pour créer des formulaires de recherche.
Pour être plus précis, imaginons les models suivants :

  • users
  • groups
  • devices
  • logs

Chaque modèle dispose d’un nombre de champ sur lequel je veux pouvoir
effectuer une recherche (champ de différents types, typiquement
varchar/texte et date par exemple).

J’aimerais beaucoup pouvoir être en mesure de définir dans mon modèle
sur quels champs autorisé la recherche, ainsi que la méthode de
recherche (tous, exacte, approximative).

Pour l’instant je n’ai fais que quelque chose du genre :
(dans mon model)

def self.find_by_conditions (conditions, operator=‘AND’)
[…]
self.find(:all, :conditions => buffer)
end

et depuis mon controller :

def search
	conditions = []
	[..]
  if ! params['user']['username'].empty?
     conditions << [ "username LIKE ?", params['user']['username'] ]
  end
	[..]
	User.find_by_conditions(conditions)
end

Mais voilà, c’est très loin d’être générique et ca demande donc de
l’écriture assez fastidieuse.

Notez que j’ai essayé le plugin search_generator, mais je ne sais pas si
c’est moi, mais je le trouve inutilisable (de plus l’utilisation d’un
fichier statique d’indexation me parait un peu suspect), mais j’avoue ne
pas voir trop insister. D’autant plus qu’en discutant avec d’autres sur
#railsfrance@freenode, je me suis rendu compte que je n’étais pas le
seul devant cette problèmatique.

Donc, mes questions :

  • suis je passé à coté de quelque chose ou d’un plugin génial ?
  • si la réponse est non, est ce que vous intéresse d’essayer de créer
    un plugin qui pourra être réutiliser ?

Bonjour,

  • suis je passé à coté de quelque chose ou d’un plugin génial ?

ez_where pourrait te rendre service (
http://www.agilewebdevelopment.com/plugins/ez_where)

intro : http://brainspl.at/articles/2006/01/30/i-have-been-busy

a+

Thibaut