Как связать несколько элементов разных типов в RoR? - PullRequest
0 голосов
/ 28 февраля 2010

У меня есть События, Документы и Обзоры, которые все должны иметь возможность связывать друг с другом. Я планировал создать таблицу связывания с четырьмя столбцами следующим образом:

link_elements{
  element1_type CHAR(1)
  element1_id INTEGER
  element2_type CHAR(1)
  element2_id INTEGER
}

Проблема в том, что я не могу понять, как сделать модель в RoR, чтобы я мог использовать поле типа элемента, чтобы определить, к какой таблице принадлежит соответствующий идентификатор элемента (Документы, События или Опросы). Я действительно новичок в Ruby, и любая помощь будет очень признательна.

1 Ответ

0 голосов
/ 28 февраля 2010

Я думаю, вы просто ищете ассоциации has_many и belongs_to.

Если у вас есть модель события, модель документа и модель опроса, вы можете указать в их соответствующих файлах .rb в папке «Модели», принадлежат ли они другим моделям или принадлежат им.

Пример: вы хотите, чтобы Опросы принадлежали Документам. В Survey.rb добавьте строку belongs_to :document. В Document.rb добавьте строку has_many :surveys.

Теперь, если вы добавите новый столбец "document_id" в таблицу Surveys, он будет искать объект Document, который соответствует целому числу id в этом столбце.

Для получения дополнительной информации ознакомьтесь с Rails API .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...