Activerecord,'foregin_key'必须是2个字段的组合

时间:2009-09-24 06:27:25

标签: ruby-on-rails activerecord foreign-key-relationship

我想要下面描述的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类中指定它?

2 个答案:

答案 0 :(得分:1)

我没有看到在这里使用外键的感觉。 外键应该是另一个表的主键。 obj_id和category都不能用作外键,因为它们不是主键的一部分。

答案 1 :(得分:0)

你能不能这样做吗?

在rails中使用多列外键不是最佳做法...