Есть ли плагин для сложного поиска с помощью 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
Другие вопросы по тегам