2017-01-17 4 views
0

알 골리 아아크 레일 젬을 사용하여 레일 앱에서 알골 리아를 사용하여 검색하고 있습니다.알골비아 (Algolia) 알 수없는 매개 변수

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

나는라는 필터에 의해 결과를 필터링하기 위해 노력하고있어 내 제품 모델에

, 나는이있다 "활성을?". 내가 포함 된 매개 변수를 사용하여 검색을 실행하려고하면 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} 

제대로 매개 변수를 참조하는 방법을 알 수 없습니다. 그것은 "활성"을 검색하기 위해 노력하고 있습니다. 활성으로 필터링하지 않으면 속성이 올바르게 적용됩니까? 나는 매개 변수 이름을 변경할 수는 있지만 오히려하지 않을 것이다.

필터링을 위해 이름에 물음표가있는 알골시아 검색 속성을 어떻게 참조합니까?

+0

당신이 액티브를 사용하고 있습니까? 그렇다면': active? '속성은 데이터베이스에서 이름이 지정되는 방식이므로': active' 여야합니다. ': active? '는 AR에 의해 제공되는 부울 필드의 별명이고 별칭입니다. –

답변

0

물음표와 같은 속성은 사용할 수 없습니다.

Slaya.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