2017-10-06 73 views

回答

1

正如尼克提到的,Payment.find(id).subscription.user將工作得很好。如果這是你經常做的事情,我建議增加一個has_one :through關係。

class Payment < ApplicationRecord 
    belongs_to :subscription 
    has_one :user, through: :subscription 
end 

然後你就可以直接引用Payment.find(id).user

0

如果從支付到用戶申報間接的關聯,你可以直接得到它:

​​
user = User.joins(:payments).where(payments: { id: [id] }).first 
# or 
payment = Payment.eager_load(:user).find(id) 
user = payment.user