首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重命名数据库中的多个项

重命名数据库中的多个项
EN

Stack Overflow用户
提问于 2015-08-04 16:00:35
回答 2查看 37关注 0票数 0

我在rails 4中为我的数据库输入了很多数据。我导入的数据是由gigabot (使用gigabot) API的用户手动输入的。

我遇到的问题是,我试图在我的例子中列出“俱乐部之夜”,但我得到了很多重复的名字,因为它们的名字相似,但并不完全相同。有没有什么方法可以将这些项分组,其中名称包含某个特定的单词,然后它们将分组在一起。

目前,这些是我唯一的验证

代码语言:javascript
复制
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,健忘症,空间,桑奇,特权,蚕。

EN

回答 2

Stack Overflow用户

发布于 2015-08-04 19:52:22

看看ActiveRecord中的update_all方法。

这将允许您更新集合中字段的所有值。所以现在你只需要得到一个你确定合适的集合。

我建议做一些像SIMILAR for postgres这样的事情。所以你可以这样做:

代码语言:javascript
复制
pattern = '%DC10%' # This can be as advanced as you need it
collection = Club.where('name SIMILAR TO ?', pattern)
collection.update_all(name: 'DC10')
票数 0
EN

Stack Overflow用户

发布于 2015-08-04 20:02:46

这听起来像是一项非常困难的任务。最有可能的情况是,您不能想出一个能够捕获您意图的正则表达式。

例如,假设您有一个俱乐部、Space和其他条目

代码语言:javascript
复制
Void @ Space
Outer Space
Inner space
Alien in Outer Space

它们都以Space结尾,但是哪些应该重新组合呢?我的例子很夸张,但听起来您正在处理大量数据,可能会发生这样的情况。

您是否有任何其他fied可以帮助您将记录重新组合在一起?比如GPS坐标,城市等等?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31803778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档