所以我有一個應用程序,用戶可以在其中創建汽車。他們也可以喜歡汽車,我想在兩者之間建立聯繫。他們創造的汽車屬於他們,他們喜歡的汽車通過喜歡他們的背景屬於他們。要做到這一點,我已經建立了我的協會如下:相同模型的多態協會Ruby on Rails 4
用戶協會:
class User < ActiveRecord::Base
has_many :cars
has_many :cars, -> {distinct}, through: :likes
end
汽車協會:
class Car < ActiveRecord::Base
belongs_to :users
has_many :likes
has_many :users, -> { distinct }, through: :likes
end
像協會:
class Like < ActiveRecord::Base
belongs_to :user
belongs_to :car
end
的問題是,之前我有我的用戶has_many汽車通過類似的關係聲明。我曾經可以打電話給@ user.cars,它會顯示用戶的汽車。現在它返回用戶喜歡的汽車的集合。我需要每個集合的方法。
當我嘗試:User.likes.cars
我得到一個
No Method error
和控制檯日誌通過查找喜歡的記錄,仍然沒有歸還汽車,即使我喜歡記錄有car_id場。
我看了一堆問題,但無法理解它們。我也試圖在模型中定義方法,而且似乎沒有任何工作可行。任何幫助表示讚賞。
我將如何更改我的關聯,以便可以同時查詢User.cars(用戶創建的汽車)和User.likes.cars(用於用戶喜歡的汽車)?