Ce n'est pas super clair mais si je pige bien, tu fais deux nouvelles
instances de Property avec le même name et pas la même value, tu les lie à
la même instance de Version, tu les sauves et ça passe malgré la contrainte
d'unicité. Je veux bien que tu montres le code où tu fais cette manip en
console avec les retours...

Michel Belleville


2009/5/6 ALAHYANE Rachid <[email protected]>

> Bonjour,
>
> Je suis entrain de développer une application dans laquelle j'ai
> besoin, à un moment donné, d'insérer plusieurs entrées dans une table:
>
> --------------------------------------------------
> property.rb
> --------------------------------------------------
> class Property < ActiveRecord::Base
>   belongs_to :version
>   validates_presence_of :name, :value
>   validates_uniqueness_of :name, :scope => :version_id
> end
> --------------------------------------------------
> la table associée à ce model contient les colonnes : id, name, value
> et version_id
>
> --------------------------------------------------
> version.rb
> --------------------------------------------------
> class Version < ActiveRecord::Base
>   has_many     :properties  ,:dependent => :destroy #e.g ON CASCADE
> delete
>   accepts_nested_attributes_for  :properties,:allow_destroy => true
> end
> --------------------------------------------------
> la table associée contient les colonnes : id et numero
>
> Le problème que j'ai est le suivant : lorsque j'insère via un
> formulaire associé à la version 1 par exemple
>
> prop1 de valeur p1
> et
> prop1 de valeur p2
>
> les deux entrées sont insérées dans la table properties, ici, je viole
> la contrainte validates_uniqueness_of, mais je ne reçois aucune
> erreur, et les entrées sont insérées :( Est-ce validates_uniqueness_of
> qui ne fonctionne pas bien ? ou bien j'ai autres chose à rajouter ?
>
> Si ma question n'est pas claire je peux la détailler encore.
>
> Merci d'avance
>
> Meilleures salutations / Best Regards
>
> Rachid ALAHYANE
>
>
>
>
>

--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
[email protected]
-~----------~----~----~----~------~----~------~--~---

Répondre à