8

我以前用的是软件的第二个版本,没有问题。在我上一个应用程序中,我决定使用最新的“thinking-sphinx”。我有一个奇怪的错误。

> 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

think_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= 渲染 :partial => "item", :collection => @cars, :as => :item

物品

%li=item.id

怎么了?

4

3 回答 3

7

在我再次仔细阅读 READ ME 文档(https://github.com/pat/thinking-sphinx)之前花了 2 个多小时后,我快要发疯了,发现是 mysql gem 版本导致.

升级到 'mysql2', '0.3.12b4' 解决了这个问题....

于 2013-02-12T13:15:43.830 回答
2

gem 'mysql2', '~> 0.3.12b5'修复了这个问题。

https://github.com/pat/thinking-sphinx/issues/446

也适用于 0.3.12b4 确认。

于 2013-04-02T06:49:33.170 回答
0

看起来您没有通过查询获得结果集。你有没有检查过你是否得到了你认为应该得到的结果。控制台是一个有价值的工具。在控制台中测试您的查询以确保。如果结果为空,您是否也可以考虑签入您的代码?在尝试使用它之前,您不会在生产中遇到这种情况。

于 2013-02-03T20:36:22.057 回答