【问题标题】:Ruby on Rails - If record is duplicated show the first one createdRuby on Rails - 如果记录重复,则显示创建的第一个
【发布时间】:2017-11-25 12:09:18
【问题描述】:

在我的应用程序中,我展示了网站、访问过他们网站的新 IP。新 IP 需要显示为每天且唯一。


例子:

192.45.11.74 访问 11 月 12 日

192.45.11.74 访问过 11 月 15 日(同一用户/IP)

我不想展示 11 月 15 日的访问,因为它已经在 11 月 12 日注册了


我就是这样做的:

@visits = Visit.order('started_at DESC').group(:ip)

这给了我唯一的 IP,但是我现在的问题是在显示每个日期的 IP 时,如果 IP 已注册 9 月 24 日并且他们再次访问 10 月 15 日,而不是在 10 月 15 日 (因为它已在 9 月 24 日显示) 中不显示相同的 IP,而是为IP 并在 10 月 15 日 再次显示(并从 9 月 24 日 将其删除)

PS:如果解释的混乱,请见谅

如何防止这种情况,每天只显示从未注册过的 IP?

【问题讨论】:

    标签: ruby-on-rails-4 group-by uniq


    【解决方案1】:
    @visits = Visit.order('started_at DESC').group(:ip).group_by do |visit| 
      visit.started_at.to_date
    end.values.map(&:last)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-14
      • 1970-01-01
      • 2018-10-16
      • 1970-01-01
      相关资源
      最近更新 更多