2009-09-24 6 views
0

Je veux une relation has_many décrit ci-dessousactiverecord, 'foregin_key' doit être une combinaison de 2 champs

class User < ActiveRecord::Base 
    has_many :mcollections, :foreign_key=>'obj_id' 
end 

ci-dessous la définition de la table mcollections

create table mcollections (
    id      int   not null auto_increment, 
    obj_id     varchar(255) not null, 
    category    varchar(255) not null, 
); 

Le :foreign_key est pas un seul champ sur la table mcollections. La clé étrangère doit être une combinaison de deux champs (obj_id + category). Comment puis-je le spécifier dans la classe User?

Répondre

1

Je ne vois pas le sens de l'utilisation des clés étrangères ici. Une clé étrangère doit être la clé primaire d'une autre table. Obj_id et category ne peuvent pas être utilisés comme clé étrangère car ils ne font pas partie de la clé primaire.

0

Vous pouvez le faire d'une autre manière?

Son pas la meilleure pratique d'utiliser des clés étrangères à plusieurs colonnes dans des rails ...

Questions connexes