Rails自定义两个表的外键名称

8
我有两个模型,例如 User 和 Club,它们各自拥有属性:
User:
  id
  uid
  email
  etc.

并且

Club:
  id
  player_id
  address
  supporter
  etc.

由于某种原因,连接属性是 clubs.player_idusers.uid 而不是 clubs.player_idusers.id。是否可能使用 has_onebelongs_to 创建一个一对一关联来连接这两个模型?谢谢。


几年晚了,但这篇文章仍然相关!对我帮助很大!谢谢! - stratis
2个回答

27

我敢打赌这会奏效:

class User < ActiveRecord::Base
  has_one :club, :foreign_key => :player_id, :primary_key => :uid
end

class Club < ActiveRecord::Base
  belongs_to :user, :foreign_key => :player_id, :primary_key => :uid
end

非常感谢你。 - akbarbin

0

俱乐部可以有多个用户,而用户也可以属于多个俱乐部吗?如果是这样的话,您可能需要查看http://guides.rubyonrails.org/association_basics.html页面,了解has_and_belongs_to_many关联方法。如果您使用此关联方法,则需要创建一个单独的迁移表来将user_id与club_id相关联。


请注意,对于has_and_belongs_to_many关系,您不能使用:primary_key,因此如果需要,请务必使用has_many :through关系。 - Joshua Pinter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接