8

以前はソフトウェアの 2 番目のバージョンを使用していましたが、問題はありませんでした。前回のアプリケーションでは、最新の「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

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

アイテム

%li=item.id

どうしたの?

4

3 に答える 3

7

これに2時間以上費やした後、私は気が狂いそうになりましたが、READ MEドキュメントをもう一度注意深く読んで(https://github.com/pat/thinking-sphinx)、原因が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 に答える