belongs_to具有不同的外键以及另一个表中的主键

时间:2016-04-29 09:56:40

标签: ruby-on-rails associations

我有两种模式:

TicketUser

票证属于用户,用户具有多张票证。

这里的问题是我想将这两个模型与:

联系起来

故障单有ref_token列,用户有token列。所以,基本上当试图找到给定令牌的用户(令牌123)时,我希望得到以下查询:

SELECT * FROM tickets WHERE token = 'token123'

如何设置关联来完成此操作(基本上我想指定设置关联的列。在这种情况下,它们与主键不同。)

我现在有这个:

User

has_many :tickets, foreign_key: 'ref_token', primary_key: 'token'

Ticket

belongs_to :user, foreign_key: 'ref_token', primary_key: 'token'

我可以user.tickets,但我不能ticket.user。它不断返回nil

1 个答案:

答案 0 :(得分:2)

我想它应该是:

has_many :tickets, foreign_key: "ref_token"

belongs_to :user, foreign_key: "token"