Algolia未知参数

时间:2017-01-17 06:20:56

标签: ruby-on-rails algolia

我使用algolia使用algoliasearch-rails gem在rails应用中搜索。

在我的产品型号中,我有这个:

algoliasearch index_name: "Product" do 
  attributes :id, :name, :description, :active?
  ...
end

我试图通过一个名为" active?"的过滤器来过滤结果。当我尝试使用包含的参数运行搜索时,我从Algolia收到错误。

{"hits"=>[], "hitsPerPage"=>0, "page"=>0, "facets"=>{}, "error"=>#<Algolia::AlgoliaProtocolError: 400: Cannot POST to https://algolia.net/1/indexes/Product_development/query: {"message":"Unknown parameter: active%3F","status":400}

我无法弄清楚如何正确引用参数。它正在努力检索&#34;活跃的?&#34;如果我没有按活动过滤?我可以更改参数名称,但不愿意。

如何引用在过滤名称中带有问号的Algolia搜索属性?

1 个答案:

答案 0 :(得分:0)

您不能使用带有问号的属性。

正如Slava.K在评论中提到的,如果您的active?方法是Active Record属性,那么使用active代替就可以了。

但是,如果active?是与Active Record无关的方法,我建议添加一个自定义属性,如下所示:

class Product < ActiveRecord::Base
  include AlgoliaSearch

  algoliasearch do
    attributes :id, :name, :description
    attribute :active do
      active?
    end
  end

  def active?
    ...
  end
end

此处有关自定义属性的更多详细信息:https://github.com/algolia/algoliasearch-rails#custom-attribute-definition