Activerecord,“foregin_key”必须是 2 个字段的组合
我想要下面描述的 has_many 关系
class User < ActiveRecord::Base
has_many :mcollections, :foreign_key=>'obj_id'
end
下面是表 mcollections 的定义
create table mcollections (
id int not null auto_increment,
obj_id varchar(255) not null,
category varchar(255) not null,
);
:foreign_key
不是表 mcollections
上的单个字段。外键必须是 2 个字段的组合 (obj_id +category
)。如何在 User
类中指定它?
I want a has_many relationship described below
class User < ActiveRecord::Base
has_many :mcollections, :foreign_key=>'obj_id'
end
Below is definition of table mcollections
create table mcollections (
id int not null auto_increment,
obj_id varchar(255) not null,
category varchar(255) not null,
);
The :foreign_key
is NOT A SINGLE FIELD on table mcollections
. Foreign key has to be a combination of 2 fields (obj_id + category
). How can I specify this in User
class?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我不认为这里使用外键有什么意义。
外键应该是另一个表的主键。 obj_id 和category 都不能用作外键,因为它们不是主键的一部分。
I don't see the sense of using foreign keys here.
A foreign key should be the primary key of another table. Neither obj_id nor category could be used as foreign key because they are not part of the primary key.
你不能用别的方法吗?
在 Rails 中使用多列外键不是最佳实践......
Cant you do it another way?
Its not the best practice to use multi-column foreign keys in rails...