Есть ли плагин для сложного поиска с помощью mongoid (например, meta_search для ActiveRecord)?
Я попытался meta_search, но после добавления "include MetaSearch::Searches::ActiveRecord" в мою модель возникла ошибка как "неопределенный метод`joins_values '"при запуске"MyModel.search(params[:search])"
Я думаю, что мне не нужен полный текст, поэтому я думаю, что следующие драгоценные камни не подходят для моего проекта сейчас: mongoid_fulltext mongoid-sphinx sunspot_mongoid mongoid_search
Я попробовал старый гем под названием scoped-search, я могу заставить его работать, например:
get :search do
@search = Notification.scoped_search(params[:search]
search_scope = @search.scoped
defaul_scope = current_user.notifications
result_scope = search_scope.merge defaul_scope
@notifications = result_scope
render 'notifications/search'
end
но это позволит дозвониться до любых областей применения в моей модели.
Есть ли "лучшая практика" для выполнения этой работы?
1 ответ
Если вы хотите ограничить область, которую хотите использовать в scoped_search, вы можете отфильтровать параметры [:search], например:
def limit_scope_search
params[:search].select{|k,v| [:my_scope, :other_scope_authorized].include?(k) }
end