我在为我的Rails应用安装pg-trgm gem时尝试遵循这个超级简单的README指南(https://github.com/mitchellhenke/sequel-pg-trgm)
不幸的是,当我收到错误消息时,我必须做错事:
== 20180531122444 AddPgTrgmExtensionToDb: migrating ===========================
rails aborted!
StandardError: An error has occurred, this and all later migrations canceled:
undefined method `plugin' for #<Class:0x007fdb68c1bad8>
我想这是关于plugin
我试图在我的模型中使用此迁移,但我不知道为什么这是一个问题。
我的迁移文件:
class AddPgTrgmExtensionToDb < ActiveRecord::Migration[5.2]
def change
Card.migration do
up do
extension :pg_trgm
add_pg_trgm(:foods, :name)
end
down do
extension :pg_trgm
drop_pg_trgm(:foods, :name)
end
end
end
end
我的模特档案:
class Card < ApplicationRecord
plugin :pg_trgm
end
有什么想法吗?
答案 0 :(得分:0)
您所指的gem适用于续集,而不适用于 Rails AR,因此无效。
您可以使用迁移中的execute
方法执行自定义SQL。这应该允许您创建这些trm索引。
请注意,如果您使用execute
,则可能需要切换Rails将您的架构从schema.rb
记录到structure.sql
的方式。有关详细信息,请参阅documentation
另一个解决方案是@sparkAP
的评论中提到的pg_search gem