объединение данных из 2 разных моделей - PullRequest
1 голос
/ 11 ноября 2010

У меня есть 4 местоположения, в которые я извлекаю данные из устаревшей системы.
Я вытягиваю 3 местоположения в одну модель (потому что я загружаю данные в той же таблице).в отдельной базе данных.

Мне интересно, есть ли способ объединить 2 в модели или 2 модели в рельсах.

Вот что у меня сейчас есть:

class Fyf003 < ActiveRecord::Base
  establish_connection "turnkey"
end

идругой:

class WccFyf003 < ActiveRecord::Base
  establish_connection "turnkey_wcc"
  def self.table_name() "fyf003" end
end

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

Макеты и имена таблиц идентичны.

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

Спасибо за любую помощь.

Ответы [ 2 ]

1 голос
/ 14 ноября 2010

Я понял, что могу просто использовать:

sql = "SELECT * FROM turnkey.fyf003
       UNION ALL
       SELECT * FROM turnkey_wcc.fyf003"
lot_data = Fyf003.find_by_sql(sql)

Если у кого-то есть идея получше, я за нее.

EDIT: После публикации я обнаружил, что вы можете сделать следующее, если данные одинаковы:

data1 = Fyf003.all
data2 = WccFyf003.all
all_data = data1+data2

Он просто комбинирует массивы, и у вас все еще есть отдельные объекты, но вы можете использовать .collect (&: field) на нем и заставить его работать.

Все еще ищите лучшее решение, если у кого-то оно есть.

0 голосов
/ 12 ноября 2010

Я предполагаю, что вы используете несколько моделей для сопоставления с одной таблицей.Если это так, в ваших моделях;

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