2010-11-11 64 views
1

我有4个位置,我从旧系统中提取数据。
我把3个位置放到一个模型中(因为我把数据加载到同一个表中)。
第4个位置必须位于单独的数据库中。结合来自2个不同模型的数据

我想知道是否有一种方法来结合模型中的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 

我猜测这是不是这样做的正确的方式,这就是为什么我这里。

表格布局和名称是相同的。

如果您需要更多的信息或可以指向正确的方向,那就太好了。

谢谢你的帮助。

回答

1

我想通了,我可以只使用:

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

如果有人有更好的主意,我完全赞成。

编辑: 自发布此,你可以做以下如果数据是一样的,我发现了:

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

它只是结合了数组,你仍然有单独的对象,但你可以使用.collect(&:field),并让它工作。

如果有人拥有它,仍在寻找最佳解决方案。

+0

愚蠢的输入键! – 2010-11-29 23:07:58

0

我猜你正在使用多个模型映射到一个表。如果是这样的话,在你的模型中;

set_table_name 'table_name' 
set_primary_key 'primary_key' 
+0

我很困惑。我连接到2个不同的数据库,但这些表是相同的列,只是不同的数据。我试图让他们进入一个模型。我看到你的代码所做的唯一事情就是为我的表设置表名和主键。 – 2010-11-12 05:43:57

相关问题