Направляющие: belongs_to по сравнению с has_one

Так что я просто выкладываю решение, найденное мной после часа отладки.

Начиная с Xcode 9 , это может быть отслежено журналом компилятора.

Если вы прокрутите вниз до конца журнала компилятора, вы обнаружите, что эта проблема вызвана сбоем проверки типов.

enter image description here

35
задан Matt Briggs 22 May 2009 в 21:00
поделиться

4 ответа

Да, я думаю, вы только что нашли немного странный сценарий в Rails. Я полагаю, было бы полезно рассматривать «статус» как своего рода категорию, к которой принадлежит ошибка - в этом свете это имеет смысл.

19
ответ дан 27 November 2019 в 15:45
поделиться
TABLE:
    Bug
    id integer
    desc string
    status_id integer fk

    Status
    id integer
    desc string

RAILS MODEL:
    Bug
    belongs_to :status

    Status
    has_many :bugs
9
ответ дан 27 November 2019 в 15:45
поделиться

Вы не объяснили точно, какие отношения между ошибкой и статусом вы хотели бы получить, но я предполагаю, что вас интересует одно из следующего:

  • один-ко-многим: в этом случае должно быть has_many в классе Bug и own_to в классе Status,
  • один к одному: в этом случае должно быть has_one в классе Bug и ] own_to в классе Status.

В обоих случаях Status содержит внешний ключ. Во втором случае формулировка немного странная из-за того, что взаимно-однозначные отношения фактически асимметричны (FK должен быть только с одной стороны).

2
ответ дан 27 November 2019 в 15:45
поделиться

Если Status - это просто таблица поиска / "ключ-значение", похоже, вам может понадобиться связь habtm ( has_and_belongs_to_many ) между Status и ошибка. Используя habtm, вы получите объединенную таблицу bugs_statuses , в которой есть столбцы bug_id и status_id вместе с таблицами ошибок и статусов.

0
ответ дан 27 November 2019 в 15:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: