ruby-on-rails - 搜索显示祖先的 child ?

标签 ruby-on-rails ruby-on-rails-3 ransack ancestry

我有Ransack使用 Ancestry 搜索类别。

我有模型 category、page 和 category_page。类别有祖先。 现在我可以搜索具有特定类别的页面。但是,我想要的是显示具有一个类别的页面以及具有子类别的页面。

例如,如果我搜索“编程”类别,我还希望看到 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

从 View 中截取

<%= 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 %>

最佳答案

将您的搜索表单与普通参数混合 喜欢

<%= search_form_for %>
...other search field
<%= select_tag :category_id,...%>
<% end%>

然后在你的 Controller 中,

@q = Page.search(params[:q])
@pages = @q.result()
if params[:category_id].present?
   all_category_ids = Category.find(params[:category_id]).descendant_ids
   @pages= @pages.where(:category_id => category_id)
end

关于ruby-on-rails - 搜索显示祖先的 child ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19894778/

相关文章:

mysql - 多个 Rails 应用程序读取另一个 Rails 应用程序的单个数据库/表

ruby-on-rails - 使用 rSpec 测试 delayed_job 链的最佳方法是什么?

ruby-on-rails - 丢失了我的 schema.rb!可以再生吗?

ruby-on-rails - Rails 3找不到sqlite3-ruby

ruby-on-rails-3 - 通过 link_to 合并嵌套参数

ruby-on-rails - Rails 4 simple_form has_many 通过复选框不保存

ruby-on-rails - 我如何检查 Resque 中最后一个失败的作业是什么?

ruby-on-rails - Rails Ransack - 如何在 ransacker 中包含多个条件

mysql - 在 Ruby 和 MySQL 中保持数据最新

ruby-on-rails - 使用 ransack 遍历复杂的关联标签层次结构