У меня есть 3 модели следующим образом:
class User
has_many :event_series, inverse_of: :user
has_many :events, through: :event_series, inverse_of: :user
end
class EventSeries
belongs_to :user, inverse_of: :event_series
has_many :events, inverse_of: :event_series
end
class Event
belongs_to :event_series, inverse_of: :events
has_one :user, through: :event_series, inverse_of: :events
end
Это все хорошо.
Теперь я хочу добавить специальное событие для каждого пользователя, которое называется 'showcase_event'.
class User
has_one :showcase_event, class_name: 'Event', inverse_of: :user
end
Это не работает, потому что модель Event
не имеет пользователя напрямую, она связана через EventSeries
.
Я получаю сообщение об ошибке во время сериализации:
ActiveRecord::StatementInvalid (PG::UndefinedColumn: ERROR: column events.user_id does not exist
Я использую быстрый jsonapi:
class PublicUserSerializer
include FastJsonapi::ObjectSerializer
...
has_one :showcase_event, record_type: :event, serializer: EventSerializer
...
end
Мне кажется, что обратное отношение, которое у меня есть между User
, Event
и EventSeries
, должно работать между User
и showcase_event
, но я не знаю, как указать ТОЛЬКО обратное через EventSeries
Заранее извиняюсь за отсутствие лучшего словарного запаса для описания этой проблемы.