列是字母数字的Ruby

时间:2016-03-27 15:15:56

标签: ruby-on-rails ruby regex postgresql rails-activerecord

我有一张牌桌。我想做一个查询,将元素过滤到标题为英文字母数字字符的那些,即A-Z或0-9。

我将如何做到这一点?

我试过了Card.where(title: )。问题是这似乎只是直接比较。我相信我需要应用一些正则表达式参数。这可能吗?

同样,有一种简单的方法可以将方法传递给where函数,我可以用它来完成所有逻辑,例如Card.where(title: myCheckerMethod)

1 个答案:

答案 0 :(得分:1)

由于你正在使用PostgreSQL,你的where语句可以提供一个匹配的模式。但是,应该注意的是,这有效地删除了与数据库无关的rails类型,并且您必须使用特定于所使用的数据库类型的正则表达式语法。

Card.where('cards.title ~* ?', '[A-Z0-9]+')