首页 > 解决方案 > Rails 在使用 distinct 删除重复记录时出错

问题描述

我有一个控制器方法,我在其中从不同的网站爬取数据。我在查询中使用 distinct 以便不显示重复记录。

当我在我的视图文件中添加分页时,它会给出一些错误,但没有分页它可以正常工作。

这是我的控制器方法:

def search_results
  @search_data = RtaDubai.where(query_string: @topic.title)
    .distinct(:query_string).page(params[:page]).order('id desc')
end

这是我的视图文件分页代码:

<%= will_paginate @search_data %>

这是错误:

F,[2019-03-06T08:52:03.692939 #106281] FATAL -- : [c72525d9-dcd2-4e7d-9851-d72f3940ec09] ActionView::Template::Error (PG::SyntaxError:ERROR: 在或附近出现语法错误")"

第 1 行:从 "rta_dubai" WHERE "rta_dubai"." 中选择 COUNT(DISTINCT)...

:从“rta_dubai”中选择计数(DISTINCT),其中“rta_dubai”。“query_string”= $1):

F,[2019-03-06T08:53:41.989800 #107285] 致命 -- : [3946d2c4-3fa3-486c-aa48-c5454b54d111] 94: <% end %>
[3946d2c4-3fa3-486c-aa48-c5454b54d111] 94
[3946d2c4-3fa3-486c-aa48-c5454b54d111] 96: -->
[3946d2c4-3fa3-486c-aa48-c5454b54d111] 97: <%= will_paginate @search_data %>
[3946d2c4-3fa3-486c-aa418-c598:454b] -->
[3946d2c4-3fa3-486c-aa48-c5454b54d111] 99:
[3946d2c4-3fa3-486c-aa48-c5454b54d111] 100:
F, [2019-03-06T08:53:41.989829 #1072485] 致命 -- c: -3fa3-486c-aa48-c5454b54d111]

F,[2019-03-06T08:53:41.989852 #107285] 致命 -- : [3946d2c4-3fa3-486c-aa48-c5454b54d111]
app/views/sentiment_analysis/search_results.html.erb:97:in `_app_views_sentiment_analysis_search_results_html_erb__418975307880197008 2_38946080'

标签: ruby-on-railsrubydistinct

解决方案


def search_results
  params[:page] ||= 1
  @search_data = RtaDubai.where(query_string: @topic.title)
    .uniq
    .order('id desc')
    .paginate(:page => params[:page], :per_page => 30)
end

推荐阅读