Ruby on rails 带关联模型字段的pg_搜索
我读书 我试过:Ruby on rails 带关联模型字段的pg_搜索,ruby-on-rails,pg-search,Ruby On Rails,Pg Search,我读书 我试过: class Product < ActiveRecord::Base has_many :variants def skus; variants.map(&:sku).join(' ') end multisearchable :against => [:name, :slug, :skus] end 我做错了什么?我能换一种选择吗?我想,SKU需要的是范围,而不是方法 我知道这是一个简短的回答,但没有足够的重复次数来添加评论。我最近也遇到了
class Product < ActiveRecord::Base
has_many :variants
def skus; variants.map(&:sku).join(' ') end
multisearchable :against => [:name, :slug, :skus]
end
我做错了什么?我能换一种选择吗?我想,SKU需要的是范围,而不是方法
我知道这是一个简短的回答,但没有足够的重复次数来添加评论。我最近也遇到了这个问题。
multisearch
reindex方法假定所有multisearch
能够针对的都是数据库列,而不是方法
这里有一个针对这种行为的问题:
解决此问题的最简单方法是使用一个proc声明您的多可搜索的
调用,该过程的计算方式如下:
multisearchable :against => [:name, :slug, :skus],
:if => proc{ true }
您可以看到这将如何改变重建策略
您还可以在模型上重新定义重建\u pg\u搜索\u文档
方法,如自述文件中所述:
def self.rebuild_pg_search_documents
find_each { |record| record.update_pg_search_document }
end
范围定义了一个类方法,
根据
接收列名,列名是实例方法,一个选项可以是将SKU缓存在新列中,并在变量更改时更新它们。但在我看来,范围不是一个选项。
def self.rebuild_pg_search_documents
find_each { |record| record.update_pg_search_document }
end