Неопределенный метод stringify! ошибка при использовании гемов meta_search и active_admin - PullRequest
0 голосов
/ 11 февраля 2012

Я использую гем active_admin и, поскольку для него требуется гем meta_search, я хочу предоставить функции поиска за пределами страниц администратора. Я получаю неопределенную ошибку метода, когда я предоставляю строку для метода Model.search. В соответствии с документами meta_search, это все, что мне нужно сделать, и весь поиск active_admin работает без нареканий. Я что-то упустил?

Gemfile:

  gem 'activeadmin'
  gem "meta_search",    '>= 1.1.0.pre'

Контроллер:

  @eventsearch = Event.search(params[:q])

Сообщение об ошибке (example.com/?q=foo):

  undefined method `stringify_keys!' for "foo":String

1 Ответ

1 голос
/ 11 февраля 2012

Метод Event#search ожидает хэш, где их ключи сообщают ему, какие поля искать (и как) для связанных значений. Но в вашем случае params[:q] просто содержит строку ("foo").

Раздел «Приступая к работе» в [README meta_search] покажет вам, какие параметры он ожидает. Например, если вы хотите искать в полях «События» title, вы должны сделать что-то вроде этого:

# Given a URL like this: http://example.com/?title_contains=foo
# `params` will look like this: { :title_contains => "foo" }
# so we give `params` directly to the search method:

@events = Event.search params
...