gpt4 book ai didi

ruby-on-rails - 在 Ruby on Rails 中使用参数进行路由

转载 作者:行者123 更新时间:2023-12-05 04:09:43 28 4
gpt4 key购买 nike

我是 Rails 的新手,我正在努力正确处理路由。现在我有一个名为“详细信息”的链接,当用户单击它时,我希望使用我传入的位置参数调用方法“view_details”(在页面 Controller 中):

<%= link_to "Details", :controller => "pages", :action => "view_details", 
:location => v["coordinates"]%>

在我的 routes.rb 文件中,我有:

get 'pages/view_details/:location', to: 'pages#view_details'

我收到以下错误: 没有路线匹配 [GET] "/pages/view_details/latitude=37.3505570824247&longitude=-121.922104884669"

当我搜索路由时,我看到了这个(没有前缀):

我该如何解决这个问题?

最佳答案

问题是您将 hash 作为 location 参数的值传递,而不是仅添加一个参数(即 location ),它添加了两个参数(即 latitudlongitude)并且您的路由失败。

要解决此问题,您可以设置没有location 的路线,如下所示:

get 'pages/view_details', to: 'pages#view_details'

现在,使用您现在拥有的相同链接,您将收到 latitudlongitude 参数作为 查询在 location 中分组字符串,类似于:

pages/view_details?location%5Blatitude%5D=37.3505570824247&location%5Blongitude%5D=121.922104884669

并且您可以在您的 Controller 中使用它们与 params(与任何其他参数一样),例如:

latitude = params[:location][:latitude]
longitud = params[:location][:longitude]

关于ruby-on-rails - 在 Ruby on Rails 中使用参数进行路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45317099/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com