首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails sphinx搜索未定义的方法`stringify_keys!‘

Rails sphinx搜索未定义的方法`stringify_keys!‘
EN

Stack Overflow用户
提问于 2013-06-22 02:22:52
回答 2查看 344关注 0票数 0

我尝试使用thinking_sphinx gem在mysql数据库中进行搜索。但我遇到了一些麻烦:

我得到了错误:

代码语言:javascript
复制
1.9.3-p429 :002 > Article.search "diesel"

**NoMethodError: undefined method `stringify_keys!' for "diesel":String**

    from /home/pavel/.rvm/gems/ruby-1.9.3-p429/gems/meta_search-1.1.3/lib/meta_search/builder.rb:86:in `build'
    from /home/pavel/.rvm/gems/ruby-1.9.3-p429/gems/meta_search-1.1.3/lib/meta_search/searches/active_record.rb:43:in `metasearch'
    from (irb):2
    from /home/pavel/.rvm/gems/ruby-1.9.3-p429/gems/railties-3.2.8/lib/rails/commands/console.rb:47:in `start'
    from /home/pavel/.rvm/gems/ruby-1.9.3-p429/gems/railties-3.2.8/lib/rails/commands/console.rb:8:in `start'
    from /home/pavel/.rvm/gems/ruby-1.9.3-p429/gems/railties-3.2.8/lib/rails/commands.rb:41:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'

我做错了什么?

我的app/indices/article_index.rb

代码语言:javascript
复制
ThinkingSphinx::Index.define :article, :with => :active_record do
  indexes :ART_ARTICLE_NR
end

(另外,我有非标准数据库,字段为大写)

gemfile:

代码语言:javascript
复制
gem 'thinking-sphinx'
gem 'mysql2'

为什么我会得到这个错误?

同样,当我尝试的时候:

代码语言:javascript
复制
1.9.3-p429 :003 >  Article.search(ART_ARTICLE_NR: "diesel")

我得到了:

代码语言:javascript
复制
Killed

我有sphinx 2.0.4。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-22 03:30:07

如果你查看堆栈跟踪,你会发现实际上是MetaSearch给出了一个错误,而不是ThinkingSphinx。问题是两个get都将search方法添加到ActiveRecord::Base中,您会得到一个名称冲突。实际上,您调用的search方法属于MetaSearch,并且需要完全不同的参数。要消除名称冲突,请在Gemfile中的meta_search下添加thinking-sphinx。之后,您就可以使用Article.search运行ThinkingSphinx search,使用Article.metasearch运行MetaSearch one而不会出现错误。

票数 3
EN

Stack Overflow用户

发布于 2013-06-22 04:01:44

问题是您也使用meta_search gem。看起来它还在您的模型中添加了search方法,该方法被重新定义为thinking_sphinx的同名方法

例如,解决方案不是使用meta_search

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17241910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档