2016-08-02 49 views
0

我正在使用acts_as_tenant宝石,它在我的模型中注入默认范围。太阳黑子搜索 - 忽略默认范围

我也用太阳黑子搜索,像这样:

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

Article模型的作用范围,这样即使我不寻求通过当前租户ID我只会得到正确的结果(只是全部会离开)。

现在,问题:

如果在某些情况下,我想忽略默认范围从acts_as_tenant来我怎么能做到这一点Solr中?这是行不通的:

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

它会生成不正确的SQL:

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 

其中organization_id是当前租户的ID

TL; DR:我怎么忽略了与搜索时默认范围太阳黑子?

回答

0

我仍然无法找到一种方法来忽略默认范围,当使用太阳黑子,不涉及派生的宝石。不过我能够使用

ActsAsTenant.without_tenant do 
RUN THE ENTIRE CODE HERE 
end 

截至今天(2016年8月4日),此功能尚未公布,但你可以use git repo directly