我有两个型号,通过协会,在那里我目前协会是由以下逻辑多的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