Ruby on rails ActiveRecord无键关联

Ruby on rails ActiveRecord无键关联,ruby-on-rails,ruby-on-rails-3,activerecord,Ruby On Rails,Ruby On Rails 3,Activerecord,我有两个表/模型(用户、人口统计),它们关系松散,共享一个公共列(电子邮件)。同一封电子邮件可能有多个用户记录,但只有一个人口统计记录 是否可以定义一个has_one和has_many关系,并强制它使用电子邮件列作为连接而不是id 谢谢, 斯科特 注意:如果有必要的话,我使用的是ActiveRecord 3.x您不能使用非唯一数据作为密钥,因为无法强制执行资源所属的电子邮件地址实例。您可以将电子邮件用作外键,但它将返回具有该电子邮件地址的所有用户的人口统计信息 要覆盖外键,请执行以下操作:

我有两个表/模型(用户、人口统计),它们关系松散,共享一个公共列(电子邮件)。同一封电子邮件可能有多个用户记录,但只有一个人口统计记录

是否可以定义一个has_one和has_many关系,并强制它使用电子邮件列作为连接而不是id

谢谢, 斯科特


注意:如果有必要的话,我使用的是ActiveRecord 3.x

您不能使用非唯一数据作为密钥,因为无法强制执行资源所属的电子邮件地址实例。您可以将电子邮件用作外键,但它将返回具有该电子邮件地址的所有用户的人口统计信息

要覆盖外键,请执行以下操作:

  belongs_to :user, :foreign_key => 'email'

参考资料:

诀窍是覆盖/设置:主\u键和:外键选项。这里是一个概述:斯科特的博客文章移至