我正在使用algolia在一个rails应用程序中使用algoliasearch-rails gem进行搜索。
在我的产品模型中,我有:
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}我不知道如何正确引用该参数。它正在努力检索"active?“当我不按active?过滤时,属性是否正确。我可以更改参数名称,但最好不要更改。
如何引用名称中带有问号的Algolia搜索属性进行筛选?
发布于 2017-06-30 23:18:13
您不能使用带有问号的属性。
正如Slata.K在评论中提到的,如果你的active?方法是一个活动记录属性,那么改用active就可以了。
但是,如果active?是一个与活动记录无关的方法,我建议添加一个自定义属性,如下所示:
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
https://stackoverflow.com/questions/41690261
复制相似问题