2016-04-21 6 views
1

Hat jemand Searchkick mit einem Scoped-Modell verwendet?Searchkick Filter mit Scope

Ich habe ein Article Modell mit scope :published, ->{ where(status: "Published") }. So In meinem ArticleController tat ich folgendes: query = params[:q].presence || "*" @search = Article.published.search(query, operator: "or", suggest: true)

aber nicht https://github.com/ankane/searchkick/issues/140 funktionierte und hielt einschließlich aller Aufzeichnungen

Also ich habe: query = params[:q].presence || "*" @search = Article.search(query, where:{status: "Published"}, operator: "or", suggest: true)

auch nicht funktioniert .. und gab nichts zurück. Nicht sicher, was ich falsch mache.

+0

Das Problem # 140 noch ungelöst zu sein scheint. Sich fragen, warum dieser zweite mit 'where' nicht funktioniert hat, sind Sie sicher, dass es' published' und nicht 'published' ist? –

Antwort

1

Ich brauche nur status zum search_data Hash hinzufügen

class Article < ActiveRecord::Base 

    searchkick highlight: [:title], text_start: [:title], language: "spanish" 

    scope :draft,  ->{ where(status: "Draft") } 
    scope :published, ->{ where(status: "Published") } 
    scope :scheduled, ->{ where(status: "Scheduled") } 

    def search_data 
    { 
     title: title, 
     content: content, 
     status: status  <-------- 
    } 
    end