我在rails 4中为我的数据库输入了很多数据。我导入的数据是由gigabot (使用gigabot) API的用户手动输入的。
我遇到的问题是,我试图在我的例子中列出“俱乐部之夜”,但我得到了很多重复的名字,因为它们的名字相似,但并不完全相同。有没有什么方法可以将这些项分组,其中名称包含某个特定的单词,然后它们将分组在一起。
目前,这些是我唯一的验证
class Club < ActiveRecord::Base
has_many :events
validates :name, presence:true, uniqueness:true
validates :location, presence:true
validates :description, presence:true, uniqueness:true
end下面是该表当前显示的一些示例数据
名字
DC10
健忘症
邮箱: Circo Loco @ DC10
桑基斯
Sankeys
蚕丝
特权Ibiza
Dc 10的Circoloco
空格
空间Ibiza
如果你看上面的例子,你会看到一些俱乐部是重复的。我想要清理表格,以便它将只有" DC10“作为一个俱乐部和所有的俱乐部,其中有DC10在他们的名字是在一起。
因此,在上面的例子中,不是有10个独立的球杆,而是6个。
DC10,健忘症,空间,桑奇,特权,蚕。
发布于 2015-08-04 19:52:22
看看ActiveRecord中的update_all方法。
这将允许您更新集合中字段的所有值。所以现在你只需要得到一个你确定合适的集合。
我建议做一些像SIMILAR for postgres这样的事情。所以你可以这样做:
pattern = '%DC10%' # This can be as advanced as you need it
collection = Club.where('name SIMILAR TO ?', pattern)
collection.update_all(name: 'DC10')发布于 2015-08-04 20:02:46
这听起来像是一项非常困难的任务。最有可能的情况是,您不能想出一个能够捕获您意图的正则表达式。
例如,假设您有一个俱乐部、Space和其他条目
Void @ Space
Outer Space
Inner space
Alien in Outer Space它们都以Space结尾,但是哪些应该重新组合呢?我的例子很夸张,但听起来您正在处理大量数据,可能会发生这样的情况。
您是否有任何其他fied可以帮助您将记录重新组合在一起?比如GPS坐标,城市等等?
https://stackoverflow.com/questions/31803778
复制相似问题