Tag: 重复

本地postgres db不断给出错误重复键值违反唯一约束

我不明白为什么postgres会提高: duplicate key value violates unique constraint 我去pgadmin检查表,看看表是否真的有重复,看看: 建议运行VACUUM 表上的估计行数与实际行数明显不同。 为什么会这样? 幸运的是,似乎没有在heroku的生产中发生。 这是一个rails应用程序。 更新: 这是sql日志: SQL(2.6ms)INSERT INTO“favorites”(“artist_id”,“author_id”,“created_at”,“post_id”,“updated_at”)VALUES($ 1,$ 2,$ 3,$ 4,$ 5)返回“id”[[“ artist_id“,17],[”author_id“,nil],[”created_at“,太阳,2012年3月18日03:48:37 UTC +00:00],[”post_id“,62],[”updated_at“,Sun ,2012年3月18日03:48:37 UTC +00:00]] PG ::错误:错误:重复键值违反唯一约束“index_favorites_on_artist_id_and_post_id”DETAIL:键(artist_id,post_id)=(17,62)已经存在。 但是在实际的表格中没有这样的记录,其中artist_id = 17和post_id = 62.但是postgres认为存在。

根据多个列删除重复记录

在我们的系统中,我们从外部数据库运行每小时导入。 由于导入脚本中的错误,现在存在一些重复记录。 如果任何记录具有相同的副本,则视为副本:legacy_id和:company 。 我可以运行哪些代码来查找和删除这些重复项? 我正在玩这个: Product.select(:legacy_id,:company).group(:legacy_id,:company).having(“count(*) > 1”) 它似乎返回了一些副本,但我不确定如何从那里删除? 有任何想法吗?

用于复原事件的gem ice_cube

我有简单的事件模型(标题,日期,用户)我创建了几个月的事件日历(gem’watu_table_builder’)。 我需要该function来创建重复事件。 我发现我可能会使用gem ice_cube。 但我不清楚。 我添加到模型: class Event true, :length => { :minimum => 5 } validates :shedule, :presence => true def self.events_and_repeats(date) @events = Event.where(shedule:date.beginning_of_month..date.end_of_month) # Here I need to figure out what is events repeats at this month (from date param) # how I may combine it with Events array @events_repeats = @events […]

返回Ruby中类似的数组元素

说我有这样一个数组: arr = [‘footballs_jumba_10’, ‘footballs_jumba_11’, ‘footballs_jumba_12’, ‘footballs_jumba_14’, ‘alpha_romeo_11’, ‘alpha_romeo_12’, ‘alpha_juliet_10’, ‘alpha_juliet_11’] 如果我想返回重复项,(假设数组中的任何字符串都完全相同,我只会 return arr.detect{ |a| arr.count(a) > 1 } 但是,如果我只想获得数组中每个元素的前10个字符的副本,而不事先知道变化,该怎么办? 像这样: [‘footballs_’, ‘alpha_rome’, ‘alpha_juli’]

比较包含重复的数组元素

我试图看一个数组是否包含另一个数组的每个元素。 另外,我想说明重复项。 例如: array = [1, 2, 3, 3, “abc”, “de”, “f”] 数组包含[1,2,3,3]但不包含[2,2,“abc”] – 太多2的 我已经尝试了以下但显然没有考虑到欺骗。 other_arrays.each { |i| array.include? i }

基于键合并散列数组中的散列值

我有一系列与此类似的哈希: [ {“student”: “a”,”scores”: [{“subject”: “math”,”quantity”: 10},{“subject”: “english”, “quantity”: 5}]}, {“student”: “b”, “scores”: [{“subject”: “math”,”quantity”: 1 }, {“subject”: “english”,”quantity”: 2 } ]}, {“student”: “a”, “scores”: [ { “subject”: “math”, “quantity”: 2},{“subject”: “science”, “quantity”: 5 } ] } ] 有没有更简单的方法来获得类似于此的输出,除了循环数组并找到重复然后组合它们? [ {“student”: “a”,”scores”: [{“subject”: “math”,”quantity”: 12},{“subject”: “english”, “quantity”: 5},{“subject”: “science”, “quantity”: 5 } ]}, {“student”: “b”, […]

dup和clone都返回不同的对象,但修改它们会改变原始对象

我有一个值数组,当我打印哈希值时,我将其用作订单的参考。 我想修改数组,以便数组值“更漂亮”。 我想我只是复制或克隆数组,更改值,原始对象将保持未被控制。 但是(在irb中)…… @arr = [‘stuff’, ‘things’] a = @arr.clone b = @arr.dup 所以,至少,a和@arr是不同的对象: a.object_id == @arr.object_id => false 但现在它变得奇怪了 a[0].capitalize! a => [‘Stuff’, ‘things’] @arr => [‘Stuff’, ‘things’] ## [‘Stuff’, ‘things’]## <-what??? 好的…所以修改一个会改变其他的,让我们改回来? a[0] = ‘stuff’ a => [‘stuff’, ‘things’] @arr => [‘Stuff’, ‘things’] ## <- WHAT????? 为了完整性b [1]。资本化! 具有相同的效果,将所有三个arrays的第二个位置都大写 所以…大写结束时的爆炸是否会使它变得更加强大? 足够交叉到其他对象? 我知道其他方法,但这对我来说似乎非常奇怪。 […]

如何合并两个哈希没有新的键

我怎么能合并两个哈希导致没有新的密钥,这意味着合并会合并两个哈希中存在的密钥? 例如,我想要以下内容: h = {:foo => “bar”} j = {:foo => “baz”, :extra => “value”} puts h.merge(j) # {:foo => “baz”} 我正在寻找一种非常干净的方法,因为我当前的实现非常混乱。