2010-06-08 3 views
2

Permet de dire que le modèle des livres est:Validation du modèle pour la création d'enregistrement dans des rails

created_at 
user_id (int) 
author_id (int) 
genre_id (int) 
pages (int) 

Je veux laisser les gens changer le champ « created_at » lors de la création d'enregistrement. Je veux également m'assurer qu'un enregistrement ne peut pas avoir exactement les mêmes created_at, user_id et author_id que n'importe quel autre enregistrement (c'est-à-dire que chacun a sa propre date).

Quel est le meilleur pour effectuer ce type de validation, et comment dois-je procéder?

Best,

Elliot

Répondre

3
validates_uniqueness_of :user_id, :scope => [:author_id, :created_at] 
+1

Je voudrais également ajouter une colonne séparée pour la date que vous voulez changer plutôt que d'utiliser Rails' 'colonne created_at'. Vous ne perdez rien de cette façon mais vous évitez peut-être un grand nombre de maux de tête. –

+0

cela valide-t-il également l'unicité du created_at? Et aussi, en regardant en arrière je suis d'accord sur la date, mais j'ai déjà plus de 500 enregistrements en utilisant le created_at: \ – Elliot

+0

vous pouvez écrire une migration pour dupliquer les données de created_at (500 colonnes) à new_created_at. – Vamsi

Questions connexes