Création de contraintes et relations sur d es tables via rails

Bonjour,

Je suis débutant en Rails et je souhaiterais un peut d’aide.

Je souhaiterais crée une base de donne avec des contrainte de type «
foreign key » (base de donnée en PostgeSql)
Je souhaiterais crée intégralement ma base de donnée avec rails. Via «
migrate » ou autre si ce n’est pas la meilleur methode.
Mais aussi que les contraintes on « delet » et « cascade » soit
fonctionnel
En gros savoir comment intégrer les contraintes et relation a mes
tables et comment gérer tous ca avec ruby Rails.

Donc deux tables : livre et auteur

Les relations :

  • un auteur plusieurs livres
  • un livre un auteur

Avec une contrainte de type « foreign key » sur les id de ces deux
tables donc.

Mon fichier de création via migrat :

create_table “livres”, :force => true do |t|
t.column “nom”, :text
t.column “auteur”, :integer
end

create_table “auteurs”, :force => true do |t|
t.column “nom”, :text
t.column “prénom”, :text
end

Si vous avez des liens vers des documentations  je suis preneur.

1er question :
Est-ce faisable en Rails, ou doit t’on crée à la main tous ou partis…

2eme question
Je voudrais donc savoir si c’est faisable quel serais la méthode pour
faire cela via Rails

3eme question
Rails gère t’il les contrainte ?
Je m’explique en gros deux fontion rails

La 1er delete_auteur : supprimera l’auteur de la bdd mais ne devra
fonctionner que si aucun livres n’est actuellement écrit par cette
auteur dans la bdd …
Comment est ce géré en Rails doit t’on écrire nous même les fonctions
de vérification.

La 2eme force_delete_auteur : supprimera l’auteur de la bdd et donc
devra supprimer tous les livres liée a cette auteur qui existerais
encore. Le cascad delet en sql
Comment est ce gere en Rails doit t’on ecrire nous meme les fonction
et request de supretion.

2008/3/26 Shmii [email protected]:

1er question :
Est-ce faisable en Rails, ou doit t’on crée à la main tous ou partis…

Tout n’est pas complétement réellement faisable, car ca dépend un peu
des BDD tout ca. Les contraintes ne sont pas supporté à 100% par
toutes les BDD.

2eme question
Je voudrais donc savoir si c’est faisable quel serais la méthode pour
faire cela via Rails

Tu peux mais avec le plugin :
http://www.redhillonrails.org/foreign_key_associations.html

3eme question
Rails gère t’il les contrainte ?

Pour la gestion des contraintes au niveau BDD, il faut utiliser un
plugin ou alors les écrire en SQL pur et loader ca par le schema.sql

encore. Le cascad delet en sql
Comment est ce gere en Rails doit t’on ecrire nous meme les fonction
et request de supretion.

Ce genre de contrainte peut tout à fait être gérer au niveau
applicatif par Rails. Voir la doc.


Cyril M.
http://blog.shingara.fr

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs