Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何基于两个属性删除重复项?_Ruby On Rails_Postgresql_Activerecord_Duplicates - Fatal编程技术网

Ruby on rails 如何基于两个属性删除重复项?

Ruby on rails 如何基于两个属性删除重复项?,ruby-on-rails,postgresql,activerecord,duplicates,Ruby On Rails,Postgresql,Activerecord,Duplicates,我的模型非常简单: create_table "stack_items", force: true do |t| t.integer "stack_id" t.integer "service_id" t.text "description" end 我需要删除重复的StackItem记录,这些记录具有相同的stack\u id和service\u id。但是,如果其中一个副本在说明字段中有任何内容,我必须保留该副本,并删除另一个副本 StackItem.group(

我的模型非常简单:

create_table "stack_items", force: true do |t|
  t.integer  "stack_id"
  t.integer  "service_id"
  t.text     "description"
end
我需要删除重复的
StackItem
记录,这些记录具有相同的
stack\u id
service\u id
。但是,如果其中一个副本在
说明
字段中有任何内容,我必须保留该副本,并删除另一个副本

 StackItem.group(:stack_id, :service_id).order("count_id desc").where("COUNT(*) > 1")
到目前为止,我一直试图抓取副本,但它说我不能在where语句中计数

ActiveRecord::StatementInvalid:PG::GroupingError:ERROR:其中不允许使用聚合函数

如何使用Rails 4和ActiveRecord实现这一点?我的数据库是Postgresql。

可能是StackItem。选择('count(*),:stack\u id,:service\u id)。组(:stack\u id,:service\u id)