未定义方法stringify!使用meta_search和active_admin gems时出错

时间:2012-02-11 03:41:08

标签: ruby-on-rails activeadmin meta-search

我正在使用active_admin gem,因为它需要meta_search gem,我想在管理页面之外提供搜索功能。当我向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 个答案:

答案 0 :(得分:1)

Event#search方法需要一个Hash,它们在键中告诉它要搜索哪些字段(以及如何)查找关联值。但在您的情况下,params[:q]只包含一个字符串("foo")。

[meta_search的README]中的“入门”部分将向您展示它所期望的参数类型。例如,如果您要搜索事件的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