-1
所以我有這樣的:紅寶石:如何找到哪個用戶屬於支付需要通過關係許多
User:
has_many: subscriptions
Subscription:
belongs_to: user
has_many: payments
Payment:
belongs_to: subscription
如果我有一個支付的ID,我怎麼能找到一個用戶?
所以我有這樣的:紅寶石:如何找到哪個用戶屬於支付需要通過關係許多
User:
has_many: subscriptions
Subscription:
belongs_to: user
has_many: payments
Payment:
belongs_to: subscription
如果我有一個支付的ID,我怎麼能找到一個用戶?
正如尼克提到的,Payment.find(id).subscription.user
將工作得很好。如果這是你經常做的事情,我建議增加一個has_one :through
關係。
class Payment < ApplicationRecord
belongs_to :subscription
has_one :user, through: :subscription
end
然後你就可以直接引用Payment.find(id).user
!
如果從支付到用戶申報間接的關聯,你可以直接得到它:
user = User.joins(:payments).where(payments: { id: [id] }).first
# or
payment = Payment.eager_load(:user).find(id)
user = payment.user
'@user = Payment.find(ID).subscription.user' –