0

我试图用 ruby​​ 编写一个方法,它可以:

  1. 查询并找到我们数据库中满足特定条件的所有重复项(第一个、、、和name所有last_name匹配)account_idtitle
  2. 遍历它们并结合possible_unique_keys所有重复项的字段内容
  3. 删除重复的记录,因为我们有 1 条记录,每条记录都有连接字段

我从一个快速查询开始,只提取出 dup 候选人:

results = ActiveRecord::Base.connection.select_all( "SELECT id, first_name, last_name, title, account_id, possible_unique_keys, device_contacts_count FROM CONTACTS AS a WHERE 1 < (SELECT Count(*) FROM CONTACTS AS b WHERE b.first_name = a.first_name AND b.last_name = a.last_name AND b.title = a.title AND b.account_id = a.account_id)" )

它使用我需要的字段提取似乎正确的结果集。当我尝试遍历它们时,第一个问题出现了:

results.each do |contact|
  contact.first_name
end

我真的才刚刚开始尝试解决这个问题,但是当我尝试引用任何字段时出现错误,就像我在上面尝试引用时所做的那样first_name

NoMethodError:未定义first_name的方法#<Hash:0x00000006641cb0>

4

1 回答 1

1

返回一个记录哈希数组,其中列名作为键,列值作为值。

contact[:first_name] 

或者

contact["first_name"]
于 2012-07-08T21:21:33.173 回答