我的应用程序上安装了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
为什么我得到这个以及如何解决?
答案 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)