Как активно загружать ассоциации has_one на подкласс STI - PullRequest
0 голосов
/ 24 мая 2018

У меня есть иерархия моделей, подобная этой:

class Activity
end

class HelloActivity < Activity
  has_one :hello_activity_details
end

class WorldActivity < Activity
  has_one :world_activity_details
end

Я хочу запросить все действия и загрузить данные, чтобы избежать проблемы N + 1.Тем не менее, делая:

Activity.all.include([:hello_activity_details, :world_activity_details])

Выход

Association named 'hello_activity_details' not found on WorldActivity; perhaps you misspelled it?

Как загрузить детали?

Я знаю, что я могу вызвать preloader вручную, но есть ли ещеидиоматический способ.

Спасибо

1 Ответ

0 голосов
/ 24 мая 2018

Похоже, что это типичная ошибка опечатки.

has_one должно иметь имя ассоциации класса как единственное число .

Попробуйте:

class HelloActivity < Activity
  has_one :hello_activity_detail
end

class WorldActivity < Activity
  has_one :world_activity_detail
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...