2012-02-11 60 views
0

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

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 
相关问题