Rails应用程序

时间:2018-05-31 12:34:41

标签: ruby-on-rails ruby

我在为我的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

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您所指的gem适用于续集,而不适用于 Rails AR,因此无效。

您可以使用迁移中的execute方法执行自定义SQL。这应该允许您创建这些trm索引。 请注意,如果您使用execute,则可能需要切换Rails将您的架构从schema.rb记录到structure.sql的方式。有关详细信息,请参阅documentation

另一个解决方案是@sparkAP

的评论中提到的pg_search gem
相关问题