合并来自2个不同模型的数据

时间:2010-11-11 20:48:35

标签: ruby-on-rails activerecord

我有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 个答案:

答案 0 :(得分: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(&amp;:field)并让它工作。

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

答案 1 :(得分:0)

我猜你正在使用多个模型映射到一个表。如果是这种情况,请在您的模型中;

set_table_name 'table_name'
set_primary_key 'primary_key'