Activerecord, 'foregin_key' tiene que ser una combinación de 2 campos
-
16-09-2019 - |
Pregunta
Deseo una relación has_many se describe a continuación
class User < ActiveRecord::Base
has_many :mcollections, :foreign_key=>'obj_id'
end
A continuación se muestra la tabla de definición de mcollections
create table mcollections (
id int not null auto_increment,
obj_id varchar(255) not null,
category varchar(255) not null,
);
El :foreign_key
no es un campo SOLA en mcollections
mesa. clave externa tiene que ser una combinación de 2 campos (obj_id + category
). ¿Cómo puedo especificar esto en clase User
?
Solución
No veo el sentido de utilizar las claves externas aquí. Una clave externa debe ser la clave primaria de otra tabla. Ni tampoco obj_id categoría podría ser utilizado como clave externa porque no son parte de la clave primaria.
Otros consejos
El canto le hace de otra manera?
No es la mejor práctica para utilizar las claves externas de varias columnas en los carriles ...
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow