У меня есть две модели (пользовательская и событийная) с несколькими ассоциациями has_many, где моя текущая ассоциация определяется следующей логикой:
- Пользователь может участвовать во многих событиях через 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
Столбцы группы событий:
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
, поэтому я проверил свою запись группы событий. Он имеет nil value for user_like_id.
#<EventGroup id: 24, event_id: 1, user_id: 2,event_like_id: 1, user_like_id: nil>
Дайте мне знать, как это сделать.