我有两个表位于两个不同的数据库。Rails结合了两个不同的活动记录对象
例子:
用户居住在DB1与属性USER_ID和名称
审计居住在DB2与属性ID和user_id说明
User.find_by_sql("SELECT * FROM users")
Audit.find_by_sql("SELECT * FROM audits")
我如何基于用户结合这两个查询结果的结果_id
预计输出行数=>USER_ID audit_id名
我有两个表位于两个不同的数据库。Rails结合了两个不同的活动记录对象
例子:
用户居住在DB1与属性USER_ID和名称
审计居住在DB2与属性ID和user_id说明
User.find_by_sql("SELECT * FROM users")
Audit.find_by_sql("SELECT * FROM audits")
我如何基于用户结合这两个查询结果的结果_id
预计输出行数=>USER_ID audit_id名
,如果你想这样做在Ruby中,你可以只使用映射
users = User.find_by_sql("SELECT * FROM users")
audits = Audit.find_by_sql("SELECT * FROM audits")
result = []
users.each do |u|
result << {
user_id: u.id,
name: u.name,
audits: audits.find_all { |a| a.user_id == u.id }
}
end
result
# result will include all user audits
在地图
你可以用任何你喜欢建立自己的散列
在这里,用户变量会被审计填满。你能建议如何将用户和用户审计映射到用户吗? –
@SitharaSuresh在回答中看到更新后的代码,这可能是您正在寻找的内容,如果您希望它与您指出的完全相同,那么将必须执行双重(嵌套)迭代 – mswiszcz
你是否设法从两个不同的数据库中获得结果?那么它只是一种将结果对象拼凑在一起的方式 –