Comment puis-je avoir des listes déroulantes liées sur une page rails. Les deux listes déroulantes proviendront de la base de données. Par exemple, si la première liste déroulante est category
(table category
). la deuxième liste déroulante, products
, également en provenance de db, sera remplie en fonction de la sélection de la première liste déroulante?comment avoir des listes déroulantes liées sous forme de rails
Répondre
Vous pouvez créer votre liste déroulante en utilisant l'assistant collection_select et en sélectionnant une valeur dans une liste déroulante vous pouvez renvoyer la requête ajax à votre action de contrôleur pour mettre à jour un autre élément de la page avec le nouveau menu déroulant.
<%= collection_select(:category, :some_category_method_name,
Category.all, :id, :category_name,
{:prompt => 'Select'},
{ :onchange => remote_function(:url => {:action => 'get_products'},
:with => "'id=' + this.value")})
%>
<div id='product_dropdown'></div>
donc, fondamentalement, ce que le code ci-dessus fait est, générant une baisse pour la catégorie et sur la modification de la valeur sélectionnée de ce bas drop envoie une requête à l'action « get_products » avec l'identifiant de la catégorie sélectionnée. Ensuite, dans cette méthode, vous pouvez obtenir tous les produits avec cette catégorie et mettre à jour l'élément 'product_dropdown' avec un nouveau partiel avec une liste déroulante pour les produits.
def get_products
@category = Category.find(params[:id)
render :update do |page|
page.replace_html 'product_dropdown',
:partial => 'partial_name_in_which_you_have_product_drop_down',
:locals => {:products => @category.products}
end
end
Espérons que cela devrait vous aider à démarrer.
Si vous ne savez pas comment fonctionne collection_select, alors here is the docs
Le plus simple est d'utiliser un widget Javascript qui fournira un menu hiérarchisé.
Voici O ne de YUI. Je suis sûr qu'il y en a d'autres basés sur d'autres boîtes à outils.
- 1. JQgrid: Deux listes déroulantes de sélection liées
- 2. Listes déroulantes liées et charge div
- 3. Asp.net - Création 2 liées listes déroulantes la base de données
- 4. les commandes déroulantes liées?
- 5. Comment créer des listes déroulantes?
- 6. Problème d'implémentation des listes liées
- 7. Initialiser les listes déroulantes des clés étrangères
- 8. Comment enregistrer des données à partir de listes déroulantes?
- 9. Faire une navigation de haut niveau avec des listes déroulantes: avoir des bogues IE
- 10. Faire une navigation de haut niveau avec des listes déroulantes: avoir des bogues IE pt.2
- 11. deux listes déroulantes indépendantes avec xml données liées - cakephp - meilleure méthode?
- 12. ajouter des listes déroulantes à magento
- 13. Sélection de toutes les listes déroulantes
- 14. les listes déroulantes disparaissent sous iframe dans IE6
- 15. ASP.net liste des listes déroulantes - semblable à la forme continue d'accès
- 16. Blackberry listes déroulantes horizontales efficaces
- 17. Utilisation de listes déroulantes pour la navigation
- 18. Comment créer des listes déroulantes personnalisées à l'aide du plugin ActiveScaffold Rails (http://github.com/activescaffold)?
- 19. Listes liées ou tables de hachage?
- 20. Comment avoir un composant de prévisualisation sous forme de zend?
- 21. Plusieurs listes déroulantes personnalisées avec jQuery
- 22. comment créer des listes liées se croisant en C#?
- 23. rails nils sous une forme
- 24. Interdire l'esperluette sous forme Rails
- 25. Rails - listes déroulantes de formulaire pour les ressources imbriquées. Quelle est la bonne façon?
- 26. Masquer les lignes via les listes déroulantes
- 27. Modification de la valeur des listes déroulantes créées dynamiquement
- 28. Auto-complétion rapide pour les listes déroulantes
- 29. Rendre GridView répondre à 2 listes déroulantes
- 30. html helpers pour les listes déroulantes?