Rails使用search_data关联通过belongs_to和HABTM searchkick / Elasticsearch查找所有内容

时间:2016-03-08 03:48:50

标签: ruby-on-rails activerecord elasticsearch belongs-to searchkick

我有category_id,我正在尝试查找与Post关联的所有sub_category s(记录)。我正在使用不起作用的searchkick search_data

def search_data
    attributes.merge (
        category_id: sub_category(&:category_id)
    )
end

搜索方法:

Post.search search_query,
    where: search_options

如果搜索参数为search_options[:category_id] = 3,则结果为空。

型号:

Post < ActiveRecord
   belongs_to :sub_category

Category < ActiveRecord
   has_and_belongs_to_many :sub_categories

SubCategory < ActiveRecord
   has_and_belongs_to_many :categories

但是如果我事先找到categories就好了,那就有用了:

  category = Category.find( 3 )
  search_options[:category_id] = category.sub_categories.pluck(:id)

为什么search_data无法按预期工作? (没有上面的解决方法)

我怎样才能让它发挥作用?

0 个答案:

没有答案