【问题标题】:Trying to process duplicate activerecord results尝试处理重复的活动记录结果
【发布时间】:2012-07-08 08:31:27
【问题描述】:

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

  1. 查询并找到我们数据库中满足特定条件的所有重复项(第一个 namelast_nameaccount_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 用于 #&lt;Hash:0x00000006641cb0&gt;

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3.1


    【解决方案1】:

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

    contact[:first_name] 
    

    contact["first_name"]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-12
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-27
      相关资源
      最近更新 更多