Cela peut être une question très, mais j'essaye d'autoriser seulement des enregistrements uniques pour une table appelée "Favoris" avec les attributs "lightbulb_id" et "Carte d'étudiant." Je sais modèle validations Ruby on Rails - valider un enregistrement unique, pas seulement des attributs uniques d'un enregistrement
class Person < ActiveRecord::Base
validates_uniqueness_of :user_name
end
Mais, je veux valider l'unicité de l'ensemble du dossier (de sorte que la combinaison de lightbulb_id
et student_id
). Ainsi, lightbulb_id
et student_id
peuvent être dupliqués (un étudiant peut "favori" plusieurs lightbulb_id's) et par conséquent le même id_étudiant peut apparaître plusieurs fois dans la table Favoris avec différents lightbulb_ids. Mais la combinaison spécifique ne devrait pas être dupliquée (un étudiant ne peut pas préférer une ampoule deux fois)
Cela pourrait être une question très basique, toutes les suggestions seraient appréciées. Merci.
valident: lightbulb_id, unicité: {portée:: student_id} J'ai essayé et a ajouté un index unique sur mes Favoris table et il semble fonctionner. Je ne suis pas entièrement sûr de la manière dont la spécification de la portée fonctionne. Vérifie-t-elle l'unicité du student_id et de l'attribut spécifié dans la portée combinée? – anishasri