【问题标题】:Rails: redirect_to external url(google maps) and pass paramsRails:redirect_to 外部 url(谷歌地图)并传递参数
【发布时间】:2018-01-22 22:33:00
【问题描述】:

我的 Rails 应用程序中有一个功能,我想重定向到 google 路线 url (https://www.google.com/maps/dir/?api=1) 并获取从当前位置到目的地的路线。我正在尝试根据谷歌地图 API here 来实现这一点。不幸的是,这不起作用,它确实重定向到 google url,但它没有传递参数以正确设置方向。

这是我的设置:

链接以及 google 需要的参数以使其正常工作:

<%= link_to 'Directions', initialize_path(:origin => @origin, :destination => @destination), method: :get %>

路线:

get 'initialize' => 'pages#initialize', :as => 'initialize'

重定向到 google url 并传递所需参数的方法:

def initialize
  redirect_to generate_url('https://www.google.com/maps/dir/?api=1',
                         { :origin=> params[:origin], :destination => params[:destination] })
end

助手:

def generate_url(url, parameters ={})
  uri = URI(url)
  uri.query = parameters.to_query
  uri.to_s
end

控制台显示 params 不是 nil 并且它们实际上正在传递:

`Started GET "/initialize?    destination=40.712775%2C-74.005973&origin=40.720341%2C-74.044847" for 127.0.0.1 at 2018-01-21 17:53:55 +0200
Processing by PagesController#initialize as HTML
Parameters: {"authenticity_token"=>"50liTLXVpXgGcLxEzFHRMZ0FNQ5eyvoAY8+qSb6LJ549BitH1Li91QcnKWggoQbzrdPrEDrotT2pVvEiDdiTAg==", "destination"=>"40.712775, -74.005973", "origin"=>"40.720341,-74.044847"}
Redirected to https://www.google.com/maps/dir/?destination=40.712775%2C-74.005973&origin=40.720341%2C-74.044847
Completed 302 Found in 0ms (ActiveRecord: 0.0ms)`

关于如何解决这个问题的任何想法?

【问题讨论】:

    标签: ruby-on-rails google-maps google-maps-api-3


    【解决方案1】:

    我找到了一个更简单的方法:

    &lt;%= link_to "Directions", ('https://www.google.com/maps/dir/?api=1''&amp;origin='+@origin+'&amp;destination='+@destination) %&gt;

    【讨论】:

      猜你喜欢
      • 2020-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-31
      • 2012-01-23
      • 1970-01-01
      • 2017-03-23
      相关资源
      最近更新 更多