2013-02-11 23 views
5

私はRuby on RailsモデルCamping#latitude#longitude属性を持っています。地理位置緯度と経度を確認する

これは検証する必要があります。次のように検証する必要があります。

  • 値の形式が正しくあります。例えば。 48.8582および2.2945であるが、48.8および2.2である。どんな精度も許されるべきです。私はフロート、任意の追加の検証に必要なまたはアドバイスとしてそれらを格納?
  • 有効な範囲(0〜90)です。または、負の数、または90以上の数値を許可する必要がありますか?

私はこの時点で実際の有効なアドレス(海上、北極、それが地球上の有効なポイントである限り)に関心がありません。

私はgeocoder宝石を使用していますが、入力は単なる緯度/経度のテキストフィールドのペアです。ジオコーダーは、緯度/経度のペアを検証するためのユーティリティーメソッド(見つけることはできません)を持っている可能性があるため、この質問のためだけに興味があります。

答えて

19

私はそれをチェックするジオコーダのいずれかの方法を認識していないんだけど、あなただけのレールの検証レール4に

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

以降を使用することができ、正しい答えは次のようになります。

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 } 
関連する問題