我曾经使用该软件的第二个版本,没有任何问题。在我的上一次申请中,我决定使用最新的“思考 - 狮身人面像”。我有一个奇怪的错误。
> NoMethodError in Adverts#index undefined method `next_result' for
> #<Mysql2::Client:0xac86a54>
我的宝石文件
gem 'rails', '3.2.11'
gem 'pg', '0.14.0' # My database
# for sphinx
gem "mysql2", "~> 0.3.11"
gem "thinking-sphinx", "~> 3.0.0"
索引:
ThinkingSphinx::Index.define :car, :with => :active_record do
has user_id, model_id, city_id, area_id, engine_id, mileage
end
thinking_sphinx.yml
development:
port: 9312
test:
port: 9313
production:
port: 9312
控制器:
class AdvertsController < ApplicationController
def index
@cars = Car.by_model_id(@model_id)
end
end
型号:
class Car < ActiveRecord::Base
include ThinkingSphinx::Scopes
sphinx_scope(:by_model_id) { |id|
{:with => {:model_id => id}}
}
end
我的观点
%ul = render:partial =&gt; “item”,:collection =&gt; @cars,:as =&gt; :项目
项目
%的Li = item.id
怎么了?
答案 0 :(得分:7)
在我花了2个多小时的时间之后,我再次疯狂地阅读了READ ME文档(https://github.com/pat/thinking-sphinx),发现它是导致的mysql gem版本。
升级到'mysql2','0.3.12b4'解决了这个问题......
答案 1 :(得分:2)
gem 'mysql2', '~> 0.3.12b5'
解决了这个问题。
https://github.com/pat/thinking-sphinx/issues/446
也适用于0.3.12b4确认。
答案 2 :(得分:0)
看起来您的查询结果集不正常。你有没有检查过你是否得到了你认为应该的结果。控制台是一个很有价值的工具。在控制台中测试您的查询以确保。如果结果为空,您也可以考虑检入代码?在尝试使用它之前,你不要在生产中遇到这种情况。