A rails app which gets users location using HTML5 geolocation and saves to data base

后端 未结 3 1933
执笔经年
执笔经年 2021-02-02 04:40

Seems pretty simple but I\'m struggling.

Here\'s what I have so far in the view. I display the location coords just to test its working. But I also want to persist on Da

相关标签:
3条回答
  • 2021-02-02 05:06

    Here's how I did it:

    controller:

    def location
        respond_to do |format|
          format.json {
            lat = params["lat"]
            lng = params["lng"]
            radius = 5000
            type = "restraunt"
            key = "-"
            url = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=#{lat},#{lng}&radius=#{radius}&types=#{type}&key=#{key}"
            data = JSON.load(open(url))
            render json: { :data => data }
          }
        end
      end
    

    routes.rb:

    get "/location" => "application#location"
    

    view:

    function getLocation(){
        if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(function (position){
              $.ajax({
                type: 'GET',
                url: '/location',
                data: { lat: position.coords.latitude, lng: position.coords.longitude },
                contentType: 'application/json',
                dataType: 'json'
                }).done(function(data){
                   console.log(data)
                });
            });
        }
      }
    
    0 讨论(0)
  • 2021-02-02 05:27

    You can try an "easier" way, use geocoder gem, this provides multiple methods in order to fetch the user location, one of them is by request.

    request.location.city => Medellin
    request.location.country => Colombia
    

    You can find useful information in the following links

    Railscast

    Official WebPage

    GitHub

    0 讨论(0)
  • 2021-02-02 05:28

    Check out this answer. Basically, just set the geolocation via a cookie and read the lat and long from the cookie in your controller.

    0 讨论(0)
提交回复
热议问题