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)