2016-08-02 9 views
0

Я использую acts_as_tenant драгоценный камень, который вводит масштаб по умолчанию в моих моделях.Поиск Sunspot - игнорировать область по умолчанию

Я также использую SunSpot для поиска так:

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

Article модели области видимости, так что даже если я не сдал текущий арендатор идентификатора в поиске я бы только получить правильные результаты (только общее бы выключить).

Теперь проблема:

Если в некоторых ситуациях, я хочу, чтобы игнорировать масштаб по умолчанию исходя из 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 является идентификатор текущего арендатора

TL; DR: Как игнорировать по умолчанию масштаб при поиске с Веснушка?

ответ

0

Я все еще не смог найти способ игнорировать область по умолчанию при использовании солнечного пятна, которое не предполагает разветвления драгоценного камня. Однако я был в состоянии использовать

ActsAsTenant.without_tenant do 
RUN THE ENTIRE CODE HERE 
end 

По состоянию на сегодня (4 августа 2016) эта функция еще не была выпущена, но вы можете use git repo directly