Algolia Rails记录具有特定父ID

时间:2017-03-21 00:24:08

标签: ruby-on-rails algolia

我不确定我是否会使用algolia-rails宝石(以及一般的Algolia)朝着正确的方向前进:

目前我有这两个模型:

class Contact < ActiveRecord::Base
  include AlgoliaSearch

  belongs_to :account

  algoliasearch do
    attribute :account_id, :full_name, :email, :tax_id, :contact_name

    searchableAttributes ['full_name', 'email', 'tax_id', 'contact_name']

    customRanking ['asc(full_name)']
  end
end

class Account < ActiveRecord::Base
  has_many :contacts
end

我想仅检索联系人索引上给定account_id的匹配记录,以便生成的查询不会查找不属于特定帐户的联系人ID。因此current_account.contacts.algolia_search("Tom")不应从其他帐户联系人处获取ID。

看起来它与方面有关,但我不确定。

1 个答案:

答案 0 :(得分:1)

是的,它与方面有很大关系。我修改了Contact模型,将其添加到algoliasearch块中:

attributesForFaceting ['account_id']

然后过滤匹配&#34; Tom&#34;通过特定的account_id(让我们假设3),它就像以下一样简单:

Contact.algolia_search("Tom", {facets: 'account_id', facetFilters: "account_id:3"})