(Ruby on Rails) Как импортировать некоторые данные из xml в таблицу отношений?

У меня 3 стола. Одна из них представляет собой таблицу отношений, в которой хранятся отношения двух других. Courses, Staff и Courses-staff (это таблица отношений). В моей таблице Courses не было первичного ключа, поэтому я хочу, чтобы Rails помог мне установить его (id). Но когда я импортирую эти данные из xml в свои таблицы sqlite, я не знаю id каждой записи в моей таблице курсов. Как я могу сохранить первичные ключи этих двух таблиц в моей таблице "Courses-staff"??


person zll19910516    schedule 05.07.2013    source источник
comment
Если в вашей таблице «Курсы» не было первичного ключа, какой тип ссылки вы храните в таблице «Курсы-Персонал»?   -  person Martin Velez    schedule 05.07.2013
comment
Как выглядит ваша схема? Как выглядит XML? Что вы пробовали?   -  person Mark Thomas    schedule 05.07.2013


Ответы (1)


Вы на самом деле не объясняете, что вы пробовали, поэтому никому сложно ответить на вопрос. Если ваш XML сформулирован следующим образом:

<course>
  <something>bla</something>
  <somethingElse>blabla</somethingElse>
  <staffIDs>
    <staffID>124233</staffID>
    <staffID>123532</staffID>
  </staff>
</course>
<staff>
  <staffMember>
    <staffID>124233</staffID>
    <staffName>Jim</staffName>
  </staffMember>
  <staffMember>
    <staffID>123532</staffID>
    <staffName>Sophia</staffName>
  </staffMember>
</staff>

Затем убедитесь, что вы сначала разбираете и создаете Staff, а затем, когда вы разбираете курсы, вы можете сделать что-то вроде (псевдокод):

courses.each do |c|
  # ...
  staffIDs.each do |s|
    @course.staff << Staff.find_by_external_id(s)
  end
end
person Mike Campbell    schedule 05.07.2013