未定义的方法stringify! 使用meta_search和active_admin gems时出错
我正在使用active_admin gem,因为它需要meta_search gem,我想在管理页面之外提供搜索function。 当我向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
Event#search
方法需要一个Hash,它们在键中告诉它要搜索哪些字段(以及如何)搜索相关值。 但在你的情况下, 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