Rake任务中止,未定义的思考Sphinx方法'索引'?

时间:2011-11-07 11:19:20

标签: ruby-on-rails ruby-on-rails-3 sphinx thinking-sphinx

我的应用程序上安装了Sphinx和Thinking Sphinx 2.0.5,当我继续尝试运行命令rake ts:index时,它给了我这个错误:

rake aborted!
undefined method `indexes' for #<Riddle::Configuration:0x41b57b0>

是在谈论我的Product型号吗?

class Product < ActiveRecord::Base
  attr_accessible :name
  validates_presence_of :name

  define_index do
    indexes :name
  end
end

为什么我得到这个以及如何解决?

3 个答案:

答案 0 :(得分:16)

根据这里写的内容:https://github.com/freelancing-god/thinking-sphinx/issues/301

在Gemfile中尝试更改:

gem 'thinking-sphinx', '2.0.5'

gem 'thinking-sphinx', '2.0.10'

答案 1 :(得分:1)

在我的Gemfile中我输入了

宝石'思考 - 狮身人面像','2.0.3'

我得到同样的错误。然后我把它改成了

宝石'思考 - 狮身人面像','2.0.10'和问题已经解决。

答案 2 :(得分:1)

伙计,你可以尝试去Gemfile.lock看看那些行:

riddle (1.5.0)
thinking-sphinx (2.0.5)
   activerecord (>= 3.0.3)
   builder (>= 2.1.2)
   riddle (>= 1.5.0)

如果再次阅读错误,您将看到Riddle启动错误不是sphinx。

*undefined method `indexes' for #<Riddle::Configuration:0x41b57b0>*

我有一个与think-sphinx 2.0.5完美配合的项目,在Gemfile.lock中,sphinx要求谜语版本1.3.3或更早版本,所以在项目中同样的思维 - 狮身人面像不起作用我改变了我的谜语版本在宝石文件中从1.5.0到1.3.3使用思考 - sphinx 2.0.5并且问题解决了。 sphinx版本2.0.10适用于谜语1.5.0,因此您必须选择是否要将Gemfile.lock上的Thinking-sphinx Gem版本或Riddle版本更改为:

riddle (1.3.3)
rubyzip (0.9.4)
thinking-sphinx (2.0.5)
  activerecord (>= 3.0.3)
  riddle (>= 1.3.3)