我有兩個型號,通過協會,在那裏我目前協會是由以下邏輯多的has_many(用戶和事件):如何通過協會創建的has_many記錄在軌3.2
- 用戶可以參加許多通過EventGroup
- 事件事件通過EventGroup擁有衆多用戶
- 用戶可以通過Eventgroup像很多事件
- 事件有很多用戶喜歡通過Eventgroup
型號:
class User
has_many :event_groups
has_many :events,:through => :event_groups
has_many :event_likes,:through => :event_groups,:class_name => "Event"
end
class Event
has_many :event_groups
has_many :users,:through => :event_groups
has_many :user_likes,:through => :event_groups,:class_name => "User"
end
class EventGroup
belongs_to :user
belongs_to :event
belongs_to :user_like,:class_name => "User"
belongs_to :event_like,:class_name => "Event"
end
EventGroup列:
user_id
event_id
user_like_id
event_like_id
建立關聯後我試圖創建與下面的代碼對應記錄:
user = User.first
user.event_likes << Event.first
user.save
這裏記錄與USER_ID & event_like_id創造,而不是`user_like_id & event_like_id
但我不能夠通過event.user_likes
來獲得用戶的記錄,所以我檢查了我的eventgroup記錄。它有nil value for user_like_id.
#<EventGroup id: 24, event_id: 1, user_id: 2,event_like_id: 1, user_like_id: nil>
讓我知道正確的方法來做到這一點。
我不是要求步驟檢索記錄,我想知道如何正確添加記錄。 – loganathan
我回答了你的帖子「但我無法通過event.user_likes獲取用戶記錄」。你使用'get',這是'get'查詢,但不是'add'。 –
問題是user_like_id是零總是,所以它不可能通過您的查詢檢索記錄 – loganathan