【问题标题】:Rails ActiveRecord query where " ", "_", and "-" are interchangableRails ActiveRecord 查询“”、“_”和“-”是可互换的
【发布时间】:2013-03-29 07:38:27
【问题描述】:

我的目标是编写一个 Model.find_by_name("foo-bar"),它将返回数据库中名为“foo bar”的记录)。我正在努力寻找有关如何完成此操作的任何信息。我正在使用postgresql。谢谢!

【问题讨论】:

  • 如果你只查询所有三个怎么办?
  • 如果超过1个空格,就不会只有三个了。

标签: ruby-on-rails ruby postgresql


【解决方案1】:

您可以尝试使用regular expressions 来执行此操作:

to_match = "foo_bar".sub(/[ \-\_]/, '[ \-\_]')

Model.where("'name' ~ ?", to_match)

至少这是一般的想法。这类搜索在大型表上会慢很多。

【讨论】:

  • 我不知道可以在这样的查询中使用波浪号来匹配正则表达式。它似乎不起作用。
  • 我链接到描述它应该如何工作的文档。 log/development.log 中发出了什么查询?
  • 糟糕,我忽略了链接。我只需要不区分大小写的运算符。谢谢!
猜你喜欢
  • 2011-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多