2013-02-03 31 views
8

Tôi đã từng sử dụng phiên bản thứ hai của phần mềm và không có vấn đề gì. Trong ứng dụng cuối cùng của tôi, tôi quyết định sử dụng "tư duy nhân sư" mới nhất. Tôi có một sai lầm lạ.phương thức undefined `next_result 'cho Mysql2 (đường ray 3)

> NoMethodError in Adverts#index undefined method `next_result' for 
> #<Mysql2::Client:0xac86a54> 

gemfile My

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" 

Indexes:

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 

Bộ điều khiển:

class AdvertsController < ApplicationController 
    def index 
    @cars = Car.by_model_id(@model_id) 
    end 
end 

mẫu:

class Car < ActiveRecord::Base 
    include ThinkingSphinx::Scopes 

    sphinx_scope(:by_model_id) { |id| 
     {:with => {:model_id => id}} 
    } 
end 

Quan điểm của tôi

% ul = render: một phần => "mục",: bộ sưu tập => @cars,: như =>: mục

mục

% li = item.id

Có vấn đề gì?

Trả lời

7

Tôi sắp phát điên sau khi dành hơn 2 giờ cho điều này trước khi tôi đọc kỹ tài liệu READ ME một lần nữa (https://github.com/pat/thinking-sphinx) và phát hiện ra đó là phiên bản đá quý mysql gây ra.

Nâng cấp lên 'mysql2', '0.3.12b4' giải quyết vấn đề này ....

+0

gây ra '[FATAL] f ailed để cấp phát bộ nhớ' –

0

Có vẻ như bạn đang nhận được kết quả được đặt bằng truy vấn của mình. Bạn đã kiểm tra xem liệu bạn có nhận được kết quả mà bạn nghĩ mình nên làm hay không. Giao diện điều khiển là một công cụ có giá trị cho việc này. Kiểm tra truy vấn của bạn trong bảng điều khiển để đảm bảo. Ngoài ra bạn có thể xem xét việc kiểm tra mã của bạn nếu kết quả là có sản phẩm nào? trước khi cố gắng sử dụng nó để bạn làm bạn không chạy vào điều này trong sản xuất.

+0

Vấn đề là với Nhân sư; OP đã đặt một phạm vi có tên 'by_model_id', vì vậy anh ta không lạm dụng công cụ tìm thuộc tính động. – deefour

+0

Đã xóa để tránh nhầm lẫn. – John

+0

@ John: Tôi không nghĩ đây là vấn đề. Tôi đã nhận được cùng một lỗi kể từ khi cập nhật lên ThinkingSphinx 3, và thậm chí cố gắng gọi là «empty?' Trên tập kết quả làm tăng NoMethodError ở trên. Có vẻ như bất kỳ phương thức logic nào mà tôi cố gắng gọi để lặp lại, tìm nạp hoặc kiểm tra kết quả từ một tìm kiếm sẽ làm tăng NoMethodError khi cố gắng gọi 'next_result' trên kết quả Mysql2. – davidcelis

Các vấn đề liên quan