Путаница в отношении принадлежащих, has_one, has_many - PullRequest
0 голосов
/ 13 января 2019

Я пытаюсь расширить функцию модели Shift в моем проекте. У меня есть два типа сдвигов Ashift и Bshift, которые непосредственно связаны со Shift.

Моя путаница проистекает из того, как настроить ассоциации в Shift. Вот что у меня есть:

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

class Ashift < ApplicationRecord
  belongs_to :shift
end
class Bshift < ApplicationRecord
  belongs_to :shift
end

class Shift < ApplicationRecord
  has_one :ashift
  has_one :bshift
end

Я уверен, что это ясно изложено в справочнике по ассоциации , но я прочитал его пару раз, и я все еще в замешательстве.

Имеет ли has_one или has_many ссылку на каждый экземпляр модели или класс Model в целом? Есть ли другой или лучший способ сделать это?

1 Ответ

0 голосов
/ 13 января 2019

Использование имеет один и STI Подробнее об этом здесь

class TheShift < ApplicationRecord
  belongs_to :shift
end

class Ashift < TheShift 
end

class Bshift < TheShift 
end

class Shift < ApplicationRecord
  has_one :theshift
end
...