2009-10-02 4 views
3

Je cherche une bonne solution pour un problème probablement typique de gestion de modèles avec l'association HABTM dans Rails.Comment faire la gestion HABTM avec la complétion automatique dans Rails?

Supposons que nous avons deux modèles - produits et catégories:

Products 
    has_many :categorizations 
    has_many :categories, :through => :categorizations 
Categories 
    has_many :categorizations 
    has_many :products, :through => :categorizations 
Categorization 
    belongs_to :product 
    belongs_to :category 

Pat Shaughnessy développe modified auto_complete plugin qui peut permettre de gérer un à plusieurs (et beaucoup à plusieurs) association:

alt text http://img28.imageshack.us/img28/9141/samplef.th.pngalt text http://img406.imageshack.us/img406/4075/sampleautocomplete.th.png

Pour quelqu'un qui serait suffisant, mais je ne suis pas vraiment comme autant de champs de texte. Je suppose qu'il est possible de combiner le Ryan Bates' screencasts utilisé par Pat d'une manière légèrement différente, à savoir, utilisant un champ texte saisie semi-automatique:

alt text http://img405.imageshack.us/img405/9576/betterautocomplete.th.png

il serait également préférable pour enlever de la liste des tâches suggérées (un-à-plusieurs), ou produits | catégories (plusieurs-à-plusieurs) ceux qui ont été déjà ajoutés.

Dans le cas de la relation produits-catégories, une telle complétion automatique serait utilisée à la fois sous la forme du produit et sous la forme pour la catégorie.

J'espère qu'il existe un plugin existant pour cela. Je ne suis pas très expérimenté en Ruby, et je ne sais pas vraiment comment implémenter une telle logique par moi-même.

Toute aide est appréciée!

+1

C'est une bonne idée et ne devrait pas être trop difficile à faire que cela nécessite la connaissance de JavaScript. Il s'agit en fait plus d'un problème JavaScript que d'un problème Rails. –

Répondre

2

Le problème est bien résolu en utilisant le plugin jQuery Tokeninput, comme le montre Ryan Bates: http://railscasts.com/episodes/258-token-fields

+0

Avez-vous une idée de comment afficher les jetons dans un formulaire d'édition avec nested_attributes au 3ème niveau? lors de la création, cela fonctionne très bien, mais lors du chargement du formulaire d'édition, je ne peux pas trouver un moyen d'afficher les jetons sauvegardés pour cette relation dans le formulaire imbriqué. Merci. –

0

J'ai aussi besoin d'un similaire. mais jusqu'à présent, j'ai trouvé deux plugins pour jQuery.

  1. Le "Tagger" chrisiufer.com/tagger, mais sans fonction de saisie semi-automatique.

  2. et "utilisations avancées de autocomplétion" http://education.llnl.gov/jquery/adv_auto.lasso

Ce serait cool si quelqu'un pourrait le refaire pour Ruby on Rails. :) Si vous avez une solution prête, s'il vous plaît mettez le code!

Questions connexes