Définir une clé primaire unique basé sur 2 colonnes

Je voudrais définir une clé unique pour les enregistrements sur la base de 2 colonnes : 'id' et 'langue'

pour permettre à l'utilisateur soumet les chaînes suivantes :
id=1 langue=fr value=blabla anglais
id=1 langue=fr value=blabla français

J'ai essayé d'utiliser set_primary_key et aussi add_index mais il ne fonctionne pas ( add_index :les mots, ["id", "language_id"], :unique => true )

J'ai le modèle suivant :

class Word < ActiveRecord::Base
  belongs_to :dictionnary
  belongs_to :language

  attr_accessible :lang, :rev, :value, :dictionnary_id, :language_id

  validates :value, :uniqueness => true

end  

et ce

class Language < ActiveRecord::Base
    has_many :words

    attr_accessible :lang
end
  • si le mot appartient à un Langage pourquoi avez-vous besoin pour stocker les lang avec elle? Vous pouvez simplement déléguer le Modèle de Langue. Cela étant dit, vous serez en lutte contre les rails. Je voudrais juste utiliser l'ID de la clé comme clé primaire. délégué :lang à la Langue et à ne pas vous soucier de la clé composée
  • en effet, merci. :lang vient d'ald scaffilding. J'ai besoin de l'enlever de là, depuis que j'utilise le modèle de Langue. Thx
InformationsquelleAutor Stéphane V | 2012-10-05