我使用pgsearch
进行搜索功能。
我在我的模型中写了下面的代码。
Movies.rb
pg_search_scope :search_it, :against => Movies.attribute_names,
:associated_against => {
:tags => [:name]
}
我在控制器中使用它如下:
if (params[:search].blank?)
@movies_filter = Movies.all
else
movies_filter = Movies.order(:name).search_it(params[:search])
end
现在问题是我只想在搜索到av,gers,ven
时显示复仇者。如果我用复仇者搜索(全字),我会得到结果。
答案 0 :(得分:1)
尝试以下
include PgSearch
pg_search_scope :search_it, against: [:attribute_names],
associated_against: {tags: :name}
Texticle和PgSearch
text_search
方法开始变得有点混乱,如果我们搜索更多列,它只会变得更糟。幸运的是,有一颗宝石可以帮到这里。 Texticle可以更轻松地在Postgres中进行全文搜索。要使用它,我们只需要将它添加到应用程序的gemfile中,然后运行bundle
进行安装。
gem 'texticle', require: 'texticle/rails'
以下是您可以看到的完整episode of Rails pg_search。
希望它会有所帮助。