0

我正在使用 active_admin gem,因为它需要 meta_search gem,所以我想在管理页面之外提供搜索功能。当我向 Model.search 方法提供一个字符串时,我收到一个未定义的方法错误。根据 meta_search 文档,这就是我需要做的所有事情,并且所有 active_admin 搜索都完美无缺。我错过了什么吗?

宝石文件:

  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
4

1 回答 1

1

Event#search方法需要一个哈希,其中的键告诉它要搜索(以及如何)相关值的字段。但在你的情况下params[:q],只包含一个字符串("foo")。

[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
于 2012-02-11T04:19:00.237 回答