我在项目中包含了thinking_sphinx gem。
Article.search "Bla-bla-bla"
效果很好。
但是当我在我的Gemfile中包含ransack gem时,我收到错误:
NoMethodError: undefined method `with_indifferent_access' for "Bla-bla-bla":String from /Users/ashvalev/.rvm/gems/ruby-1.9.2-p290/gems/ransack-0.7.2/lib/ransack/search.rb:21:in `initialize'
这是因为ransack gem也使用名称“search”作为搜索方法。
如何让这些宝石协同工作?
答案 0 :(得分:0)
解决方案是调用ThinkingSphinx.search而不是特定模型的#search方法。
而不是
Article.search "Bla-bla-blah"
使用系统范围的搜索呼叫,但约束到班级...
ThinkingSphinx.search "Bla-Bla-Blah", classes: [Article]
答案 1 :(得分:0)
你想在你的Gemfile中思考sphinx之前列出搜索 - 加载顺序很重要。
虽然我肯定会建议在搜索时只使用其中一种。