我有Searchkick设置,一切正常。如何通过acts_as_taggable添加标签以显示在搜索中?因此,如果用户搜索标记,它将显示在结果中。
的routes.rb
Rails.application.routes.draw do
root 'links#index'
resources :tag
resources :links do
collection do
get 'search'
end
end
end
控制器搜索操作
def search
if params[:search].present?
@links = Link.search(params[:search], page: params[:page], per_page: 15 )
else
@links = Link.all
end
end
Search.html.erb查看
<%= render 'shared/tagcloud' %>
<%= will_paginate @link %>
<div id="links-wrapper">
<%= render partial: "shared/link", collection: @links %>
</div>
答案 0 :(得分:2)
解决!我不得不将其添加到我的链接模型文件中:
def search_data
attributes.merge(
tags_name: tags.map(&:name)
)
end
答案 1 :(得分:1)
另一种解决方案就是像这样使用tag_list
:
def search_data
{
name: name,
# description: description.tr("\u0000-\u001f\u007f\u2028",''),
excerpt: excerpt,
end_date: end_date,
start_date: start_date,
tag: tag_list
}
end
这是有效的,因为tag_list输出一个标签数组,因此您无需将它们映射到数组中。