2013-02-03 20 views
8

मैं सॉफ़्टवेयर के दूसरे संस्करण का उपयोग करता था और इसमें कोई समस्या नहीं थी। मेरे आखिरी आवेदन में, मैंने नवीनतम "सोच-स्फिंक्स" का उपयोग करने का फैसला किया। मुझे एक अजीब गलती है।माईएसक्ल 2 (रेल 3) के लिए अपरिभाषित विधि 'next_result'

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

मेरे gemfile

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 

मेरा विचार

% उल = प्रस्तुत करना: आंशिक => "आइटम",: संग्रह => @cars, के रूप =>: आइटम

आइटम

% ली = item.id

क्या गलत है?

उत्तर

7

मैं एक बार फिर से पढ़ा गया दस्तावेज़ पढ़ने के पहले 2 घंटे से अधिक समय व्यतीत करने के बाद पागल होने वाला था (https://github.com/pat/thinking-sphinx) और पाया कि यह माइस्क्ल मणि संस्करण है जिसके कारण हुआ। 'Mysql2', '0.3.12b4' के लिए

उन्नयन मुद्दा ....

+0

जो '[FATAL] f स्मृति आवंटित करने के लिए उबला हुआ –

0

ऐसा नहीं लगता है कि आप अपनी क्वेरी के साथ परिणाम सेट कर रहे हैं। क्या आपने यह देखने के लिए जांच की है कि क्या आपको वह परिणाम मिल रहे हैं जो आपको लगता है कि आपको होना चाहिए। कंसोल इसके लिए एक मूल्यवान उपकरण है। सुनिश्चित करने के लिए कंसोल में अपनी क्वेरी का परीक्षण करें। यदि परिणाम खाली है तो भी आप अपने कोड में जांचने पर विचार कर सकते हैं? इसका उपयोग करने से पहले ताकि आप उत्पादन में इसे न चलाएं।

+0

समस्या स्पिंक्स के साथ है; ओपी ने 'by_model_id' नामक एक दायरा निर्धारित किया है, इसलिए वह गतिशील विशेषता खोजक का दुरुपयोग नहीं कर रहा है। – deefour

+0

भ्रम से बचने के लिए हटा दिया गया। – John

+0

@ जॉन: मुझे नहीं लगता कि यह मुद्दा है। मुझे ThinkingSphinx 3 को अपडेट करने के बाद से वही त्रुटि मिल रही है, और परिणाम सेट पर 'खाली 'कॉल करने का प्रयास करने से ऊपर उपरोक्त NoMethodError भी बढ़ता है। ऐसा लगता है कि किसी भी लॉजिकल विधि को मैं खोज से परिणामों को पुन: प्राप्त करने, लाने, या जांचने के लिए कॉल करने का प्रयास करता हूं, MySQL 2 परिणाम पर 'next_result' को कॉल करने का प्रयास करते समय NoMethodError उठाता है। – davidcelis