2011-06-07 4 views
7

Hey j'ai un modèle foo qui has_one bar. Et la barre appartient à foo. Je me demandais s'il y avait un moyen d'augmenter le has_one de telle sorte que deux barres ne puissent appartenir au même foo. J'ai regardé la documentation de has_one et il me semble qu'il n'y a pas de paramètre: uniq que je suis autorisé à spécifier. Alors dois-je créer une validation personnalisée pour y parvenir? Ou y a-t-il un moyen plus facile?ruby ​​sur rails has_one association avec unique

Merci.

Répondre

0

Je pense que vous devriez écrire votre propre validation, parce que deux autre enregistrement de Foo n'a aucune idée sur les autres documents se rapportant (Bar)

+0

Irrelevent. Ce serait inquiétant s'il ne voulait pas que deux Foo aient le même Bar. Mais ce n'est pas ce qu'il a demandé. – elc

14

Vous n'avez pas besoin d'une validation personnalisée, appliquer tout le caractère unique de la barre pour une foo donnée

class Bar < ActiveRecord::Base 
    validates_uniqueness_of :foo_id 
end 
+0

Ceci assurerait que deux foos n'ont pas la même barre, mais @dhruvg cherche à s'assurer que deux barres n'appartiennent pas au même * foo. –

Questions connexes