相关疑难解决方法(0)

如何在Ruby中替换重音拉丁字符?

我有一个ActiveRecord模型,Foo有一个name字段.我希望用户能够按名称搜索,但我希望搜索忽略大小写和任何重音.因此,我还存储了一个canonical_name要搜索的字段:

class Foo
  validates_presence_of :name

  before_validate :set_canonical_name

  private

  def set_canonical_name
    self.canonical_name ||= canonicalize(self.name) if self.name
  end

  def canonicalize(x)
    x.downcase.  # something here
  end
end
Run Code Online (Sandbox Code Playgroud)

我需要填写"这里的东西"来替换重音字符.还有什么比这更好的了

x.downcase.gsub(/[àáâãäå]/,'a').gsub(/æ/,'ae').gsub(/ç/, 'c').gsub(/[èéêë]/,'e')....
Run Code Online (Sandbox Code Playgroud)

而且,就此而言,由于我不在Ruby 1.9上,我不能将这些Unicode文字放在我的代码中.实际的正则表达式看起来会更加丑陋.

ruby unicode activerecord ruby-on-rails utf-8

70
推荐指数
7
解决办法
4万
查看次数

将 postgres 更改为不区分大小写

如何将 Postgresql 数据库更新为不区分大小写?

我已经有一些表和一些数据,目前它们区分大小写,但我想将它们全部更新为不区分大小写。

postgresql

8
推荐指数
1
解决办法
7554
查看次数

在 IN 条件下使用 LOWER

假设我有一个名为的表comodity_group,其结构如下所示:

+----------+-------+
| group_id | name  |
+----------+-------+
| 1        | Data1 |
+----------+-------+
| 2        | Data2 |
+----------+-------+
| 3        | data3 |
+----------+-------+
Run Code Online (Sandbox Code Playgroud)

我有以下查询

SELECT * FROM comodity_group WHERE name IN('data1','data2','data3')
Run Code Online (Sandbox Code Playgroud)

查询返回0结果,因为条件都是小写的(注意条件也是动态的,可以是Data1或daTa1等)

所以我想将条件和字段名称都设为小写,换句话说,不区分大小写。

postgresql

2
推荐指数
2
解决办法
2054
查看次数

如何在登录表单中使用户名不区分大小写?

我正在使用 Symfony 的登录表单,但如果输入的用户名是“FOO”并且数据库中存储的是“foo”,则我无法登录。我正在使用 Postgres。这意味着用户名字段区分大小写。我能做些什么?

php postgresql symfony symfony4

1
推荐指数
1
解决办法
944
查看次数