2

Web サイトの訪問者の IP アドレスを自動的に検出し、対応する都市を表示するコードを作成しようとしています。これは、Geocoder を使用して IP を検出し、対応する都市を表示するのと同じくらい簡単だと思いましたが、成功していません。

IP アドレスとの互換性があると主張するドキュメントを調べてきましたが、何か間違ったことを行っているか、ドキュメントが間違っています: http://rdoc.info/github/alexreisner/geocoder/master/frames

文字列などのデータを提供すると思われる location.rb モデルにこれがresult.cityあります。

class Location < ActiveRecord::Base
  attr_accessible :address, :latitude, :longitude

  reverse_geocoded_by :lat, :lon do |obj,results|
      if geo = results.first
        obj.city    = geo.city
        obj.zipcode = geo.postal_code
        obj.country = geo.country_code
      end
    end
    after_validation :reverse_geocode

end

そこで、location_controller.rb に @city = result.city を追加しました。

def index
    @locations = Location.all
    @city = result.city
  end

<%= @city %>次に、それが機能することをテストするために、場所に index.html.erbを入れました。

ページをレンダリングすると、「結果」が定義されていないことを示すエラーがコントローラーに表示されます。

undefined local variable or method `result' for #<LocationsController:0x007faf9d5009e8>

app/controllers/locations_controller.rb:7:in `index'

どこが間違っていますか?または、モデルが説明どおりに機能しないのはなぜですか?

4

0 に答える 0