2013-02-11 25 views
5

मान्य करें मेरे पास और #longitude विशेषताओं के साथ रेल मॉडल Camping पर रूबी है।भौगोलिक स्थान अक्षांश और देशांतर

यह सत्यापित किया जाना चाहिए। इसे सत्यापित किया जाना चाहिए ताकि:

  • मान सही ढंग से स्वरूपित हैं। जैसे 48.8582 और 2.2 9 45 लेकिन 48.8 और 2.2 भी। किसी भी परिशुद्धता की अनुमति दी जानी चाहिए। मैं उन्हें फ्लोट के रूप में स्टोर करता हूं, किसी भी अतिरिक्त सत्यापन की आवश्यकता या सलाह दी जाती है?
  • वे वैध श्रेणियों (0-90) के भीतर हैं। या मुझे नकारात्मक संख्याओं, या संख्याओं को ऊपर और नीचे 90 की अनुमति देनी चाहिए?

मुझे इस बात पर कोई दिलचस्पी नहीं है कि इस बिंदु पर एक वास्तविक मान्य पता है (समुद्र, उत्तरपोल, जो भी हो, जब तक यह पृथ्वी पर एक वैध बिंदु है)।

मैं geocoder मणि का उपयोग कर रहा हूं, लेकिन अभी के लिए, इनपुट बस लेट/लॉन टेक्स्टफील्ड की एक जोड़ी है। जियोकोडर केवल इस प्रश्न के लिए रूचि रखता है क्योंकि इसमें लेट/लम्बी जोड़ी को सत्यापित करने के लिए उपयोगिता-विधियां (जो मुझे नहीं मिल सकती) हो सकती हैं।

उत्तर

19

मुझे लगता है कि जाँच करने के लिए जियोकोडर में किसी भी तरीकों के बारे में पता नहीं कर रहा हूँ, लेकिन तुम सिर्फ रेल सत्यापन

validates :latitude , numericality: { greater_than_or_equal_to: -90, less_than_or_equal_to: 90 } 
validates :longitude, numericality: { greater_than_or_equal_to: -180, less_than_or_equal_to: 180 } 
0

रेल 4 और अधिक से अधिक में इस्तेमाल कर सकते हैं, सही जवाब होगा:

validates :lat, numericality: { greater_than_or_equal_to: -90, \ 
    less_than_or_equal_to: 90 } 
validates :lng, numericality: { greater_than_or_equal_to: -180, \ 
    less_than_or_equal_to: 180 } 
संबंधित मुद्दे