के साथ संयुक्त शामिल होने के 2 से संबंधित रेल मॉडलभीतरी रेल जियोकोडिंग मणि
class Location < ActiveRecord::Base
has_many :rates
geocoded_by ....
end
class Rate < ActiveRecord::Base
belongs_to :location
end
मैं जियोकोडर मणि का उपयोग कर रहा है - http://www.rubygeocoder.com
मुझे लगता है कि एक के भीतर कर रहे एक विशेष pair
विशेषता के साथ सभी दरों लगाना चाहते हैं उपयोगकर्ता के लिए कुछ दूरी।
एक आंतरिक
SELECT * FROM rates INNER JOIN locations ON rates.location_id=locations.id;
फिर दरों पर शामिल होने के एसक्यूएल में, मैं क्या करना होगा, एक जहां जोड़ी विशेषता पर फिल्टर करने के लिए शर्त डालें, और उसके बाद (पास जिसके परिणामस्वरूप मेज पर जियोकोडर के पास विधि का उपयोग विधि क्वेरी में एक शर्त कहकर काम करती है जो स्थान पर अक्षांश और देशांतर गुणों का उपयोग करके दूरी की गणना करती है) केवल सही दूरी के भीतर पंक्तियों का चयन करने के लिए
मैं रेल में यह कैसे कर सकता हूं? मैंने कोशिश की
rates = Rate.joins(:locations)
मैं
ActiveRecord::ConfigurationError: Association named 'locations' was not found; perhaps you misspelled it?
मिल मैं इस
rates = Rate.joins(:locations).near(my_latitude, my_longitude, distance).where(:rates => {:pair => 'xxxx'})
क्या करना चाहते हैं, लेकिन मैं
undefined method `near' for #<ActiveRecord::Relation:0xa075ff8>
चूंकि यह एक belongs_to है, मुझे लगता है कि ': locations' विलक्षण की जरूरत है। सुनिश्चित नहीं है कि यह काम करेगा, लेकिन आपको बस अपनी विधि कॉल को फिर से ऑर्डर करने की आवश्यकता हो सकती है। इस बात पर निर्भर करता है कि मणि एआरएल के साथ कैसे काम करता है। 'Rate.near (my_latitude, my_longitude, distance)। Join (: location) .where (: rate => {: pair => 'xxxx'})' – agmcleod