rails activerecord通过比较来自2个不同数据库的2个表来返回结果数组

时间:2014-11-10 21:42:15

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4

所以我正在研究这个现有的rails应用程序,我从2个不同的数据库访问2个表。

scope :comp_ids_in, lambda {|comp_ids| where(:comp_id => comp_ids)}

company_info = CompanyInfo.comp_ids_in(my_array_of_ids)

上面的company_info返回一个ActiveRecord数组:Relation CompanyInfo对象。

现在我想将上述company_info对象与另一个数据库上的另一个表进行比较 并将所有找到的结果返回给对象。

我在控制器中的现有尝试一次只会返回1个结果。

company_info.each do |info|
    # RemoteInfo is an acive record class which accesses record from a different database
    remote_info = RemoteInfo.where(username: current_user.username, property_code: info.org_id, chain_code: info.site_id)
end

我希望将所有结果存储在remote_info对象中。这样我就可以遍历该对象并获取返回的任何信息。

如果有人建议我采用有效的方法,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

如果您不担心订单,只需进行一次查询即可获得所有远程信息

remote_info = RemoteInfo.where(username: current_user.username, property_code: company_info.collect(&:org_id), chain_code: company_info.collect(&:site_id))