Ancestryカテゴリを使用したRansack検索があります。
モデルのカテゴリ、ページ、およびカテゴリ_ページがあります。カテゴリには祖先があります。特定のカテゴリのページを検索できるようになりました。ただし、1 つのカテゴリを持つページと、子カテゴリを持つページも表示する必要があります。
たとえば、プログラミング カテゴリを検索すると、Ruby on Rails をカテゴリとして (プログラミングを親として持つ) ページも表示されます。
Ancestry のドキュメントには、テストできるいくつかのオプションがありますが、Ransack で何をしなければならないかわかりません。私が試すことができる推奨事項をいただければ幸いです。
PagesController から抜粋
def index
@search = Page.paginate(:per_page => 20, :page => params[:page]).search(params[:q])
@pages = @search.result(:distinct => true)
respond_to do |format|
format.html # index.html.erb
format.json { render json: @pages }
end
end
ビューから切り取った
<%= search_form_for @search, :html => {:class => "form-inline"} do |f| %>
<%= f.label :category_id %>
<div class="form-group" id="div_q_categories_id_eq">
<%= f.collection_select :categories_id_eq, Category.order(:name), :id, :name, {:include_blank => true}, {:class => 'form-control'} %>
<% "f.collection_select :categories_id_eq, Category.order(:name), :id, :name, {:include_blank => true}, {:class => 'form-control', :multiple => true}" %>
</div>
<%= f.submit t("basic.search"), :class => "btn btn-info" %>
<% end %>