0

我正在使用acts_as_tenant在我的模型中注入默认范围的 gem。

我也使用 Sunspot 进行搜索,如下所示:

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:使用 Sunspot 搜索时如何忽略默认范围?

4

1 回答 1

0

在使用不涉及分叉 gem 的太阳黑子时,我仍然找不到忽略默认范围的方法。但是我能够使用

ActsAsTenant.without_tenant do 
 RUN THE ENTIRE CODE HERE 
end

截至今天(2016 年 8 月 4 日),此功能尚未发布,但您可以直接使用 git repo

于 2016-08-04T02:16:53.877 回答