2

Searchkick のセットアップがあり、すべてが機能します。act_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>
4

2 に答える 2

2

解決しました!これをリンク モデル ファイルに追加する必要がありました。

def search_data
   attributes.merge(
    tags_name: tags.map(&:name)
   )
end
于 2015-01-11T14:36:57.743 に答える
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 がタグの配列を出力するため機能するため、それらを配列にマップする必要はありません。

于 2015-12-14T14:25:21.350 に答える