2010-11-11 4 views
1

J'ai 4 emplacements dans lesquels je récupère des données d'un ancien système.
Je tire 3 des emplacements dans un modèle (parce que je charge les données dans la même table).
Le 4ème emplacement doit être dans une base de données séparée.combinaison de données provenant de 2 modèles différents

Je me demande s'il existe un moyen de combiner le 2 dans un modèle ou 2 modèles dans des rails.

Voici ce que j'ai actuellement:

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

et l'autre est:

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

Je devine que ce n'est pas la bonne façon de faire, ce qui est la raison pour laquelle je suis ici.

Les mises en page et les noms de table sont identiques.

Si vous avez besoin de plus d'infos ou pouvez me pointer dans la bonne direction, ce serait génial.

Nous vous remercions de votre aide.

Répondre

1

Je compris que je pouvais utiliser:

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

Si quelqu'un a une meilleure idée, je suis tout à fait.

EDIT: J'ai découvert depuis l'affichage ce que vous pouvez faire ce qui suit si les données sont les mêmes:

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

Il combine simplement les tableaux, et vous avez encore des objets séparés, mais vous pouvez utiliser .collect (&: champ) et le faire fonctionner.

Toujours à la recherche de la meilleure solution si quelqu'un l'a.

+0

stupide touche d'entrée! –

0

Je suppose que vous utilisez plusieurs modèles pour mapper à une table. Si c'est le cas, dans vos modèles;

set_table_name 'table_name' 
set_primary_key 'primary_key' 
+0

Je suis confus. Je me connecte à 2 bases de données différentes, mais les tables sont les mêmes colonnes, juste des données différentes. J'essaie de les mettre dans un modèle. La seule chose que je vois votre code faire est de définir le nom de la table et la clé primaire pour mes tables. –

Questions connexes