2016-08-02 4 views
0

Ich verwende acts_as_tenant Edelstein, der Standardbereich in meinen Modellen injiziert.Sonnenfleckensuche - Standardbereich ignorieren

ich Sunspot auch wie so für die Suche verwenden:

Article.search do 
    with(:organization_id, ActsAsTenant.current_tenant.id) 
    fulltext params[:search] 
end 

Article Modell scoped ist, so dass, selbst wenn ich nicht jetzige Mieter-ID auf der Suche gibt sie nur die richtigen Ergebnisse, die ich bekommen würde (nur das Gesamt würde aus sein).

Nun das Problem:

Wenn in einigen Situationen mag ich Standardbereich ignorieren, von acts_as_tenant kommen, wie kann ich es in Solr tun? Das wird nicht funktionieren:

Article.unscoped.search do 
    with(:organization_id, 999) 
    fulltext params[:search] 
end 

wird es eine falsche SQL generieren:

Article Load (34.2ms) SELECT `articles`.* FROM `articles` WHERE `articles`.`id` IN (3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32) AND `articles`.`organization_id` = 1 

wo organization_id des aktuellen Mieters ist id

TL; DR: Wie ignoriere ich Standardbereich bei der Suche mit Sonnenfleck?

Antwort

0

Ich konnte immer noch keine Möglichkeit finden, den Standardbereich zu ignorieren, wenn Sie Sonnenflecken verwenden, bei denen das Juwel nicht gespalten wird. Allerdings war ich in der Lage

ActsAsTenant.without_tenant do 
RUN THE ENTIRE CODE HERE 
end 

Ab heute nutzen (4. August 2016) Diese Funktion ist noch nicht freigegeben worden, aber man kann use git repo directly