gpt4 book ai didi

ruby-on-rails - 无法使 postgres unaccent 扩展在 rails 上工作

转载 作者:行者123 更新时间:2023-12-05 08:54:36 33 4
gpt4 key购买 nike

在一个工作的应用程序中,我正在尝试实现无重音查询。

pg-gem version 0.21
postgresql version 9.5/9.6
rails version 4

我首先在此处创建/启用扩展是迁移:

def up
execute 'CREATE EXTENSION IF NOT EXISTS unaccent'
end

def down
execute 'DROP EXTENSION IF EXISTS unaccent'
end

迁移运行良好。 psql\dx 显示扩展已打开。对 psql 的一个简单的 unccent 查询显示它按预期工作。

当我尝试查询这样的东西时:

people = people.where('unaccent(people.first_name) ILIKE unaccent(?)', "%#{params[:first_name]}%") if params[:first_name].present?

我收到这个错误:

PG::UndefinedFunction: ERROR:  function unaccent(character varying) does not exist

起初我以为是连接到错误的数据库,因为我玩过很多版本,但在确保不是这种情况后,错误仍然存​​在。

为了完全确定,我还在测试服务器上对其进行了测试,结果出现了同样的错误。

由于数据库级别的一切似乎都很好,我怀疑 rails 方面有问题,但我不知道如何进一步调查。

欢迎任何帮助/建议!

最佳答案

运行一个对我有用的新迁移

class AddUnaccent < ActiveRecord::Migration[6.0]
def change
enable_extension "unaccent"
end
end

然后在查询中

Store.where('unaccent(name) ILIKE unaccent(?)', "%#{term}%")

关于ruby-on-rails - 无法使 postgres unaccent 扩展在 rails 上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49195503/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com