我想設置多個has_many:通過並行關係。這裏是我的2個標準和2個連接模型:Rails has_many:through - >如何設置關聯以從多個連接模型中拉取?
User.rb
has_many :ownerships, dependent: :destroy
has_many :devices, through: :ownerships
has_many :bookings, dependent: :destroy
has_many :devices, through: :bookings
Ownership.rb
belongs_to :user, touch: true, counter_cache: :devices_count
belongs_to :device, touch: true
Booking.rb
belongs_to :user, touch: true, counter_cache: :bookings_count
belongs_to :device, touch: true, counter_cache: :bookings_count
Device.rb
has_many :ownerships, dependent: :destroy
has_many :users, through: :ownerships
has_many :bookings, dependent: :destroy
has_many :users, through: :bookings
預期該電流設置不工作,似乎是加盟模式之間的串擾。我希望連接模型能夠獨立並行(即用戶可以擁有關係 - 所有權 - 設備無法預訂)。我不在這裏尋找嵌套的has_many:through關係。
當我更改設備的用戶所有權似乎改變了預訂的數量,反之亦然......我應該如何正確設置它的任何想法?
感謝您的回答,我認爲它是在正確的軌道上。你確定foreign_keys正確嗎?他們不應該分別爲ownership_id和booking_id嗎? –
沒問題 - 不,我不確定他們是否正確:)我會看看! –
這只是一個快速修復;至於爲一個關聯提供多組數據 - 我需要了解這個 –