Il arrive souvent d'avoir besoin d'une table toute simple qui sera utilisée pour afficher un libellé correspondant à un code.
Il faut prévoir à la création et à l'édition une liste déroulante construite à partir de ces tables de libellé.
ActiveRecord de Rails permet de simplifier l'écriture des vues.
Soit la table des Produits (notre table des libellés)
id :primary key (auto-incrementé)
libelle : string
Soit la table Factures qui va utiliser ces libellés :
id :primary key (auto-incrementé)
... infos diverses ....
produit_id (clé étrangère)
...Suite ....
Pour ajouter une liste déroulante dans la vue facture , il suffira d'écrire :
<%= f.label :Produit %>
<%= select("facture", "produit_id", Produit.find(:all).collect {|p| [ p.libelle, p.id ] }, {:include_blank => 'None'})
%>
Ces lignes vont :
chercher toutes les occurences de la table produit
Construire la liste déroulante en ajoutant au sommet une ligne 'none'
Associer le parametre params[:facture][:produit_id] au formulaire .
Pour fonctionner il faut décrire le lien unissant produit à facture par la clause :
belongs_to :produit DANS le modèle de Facture.
Aucun commentaire:
Enregistrer un commentaire