gpt4 book ai didi

ruby-on-rails - Rails 3 路由处理多个非必需参数

转载 作者:行者123 更新时间:2023-12-01 14:07:47 24 4
gpt4 key购买 nike

我正在将一个 zend 框架/php 应用程序移植到 Rails,并且有一组参数用于查询之类的东西。

例如:

/locations/get-all-locations/lat/xxx.xxx/lng/xxx.xxx/radius/5/query/lemonade/updated_prev_hours/72

但可以提供这种变体,例如省略查询或距离参数(即基本上不同的集合中可能需要一些 - 另一个问题)。似乎所有参数都需要命名。

这最好由这样的静态段处理吗:

match 'locations/get-all-locations/lat/:lat/lng/:lng/radius/:radius/query/:query/updated_prev_hours/:updated_prev_hours => 'locations#get_all_locations'

这就是我所需要的并且值将在参数哈希中可用吗?或者是否有更好的策略来处理像这样的复杂 URL?

谢谢

最佳答案

这看起来您对 URL 的了解太深了,简单地使用查询字符串会更合适。但是,如果您正在移植并且没有其他选择,那么您可以使用 route globbing 执行此操作.

类似于:

match "locations/get-all-locations/*options" => "locations#get_all_locations"

然后您可以通过执行以下操作来匹配它们:

Hash[*params[:options].split("/")]

或者合并它们:

params.merge!(Hash[*params[:options].split("/")])

关于ruby-on-rails - Rails 3 路由处理多个非必需参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7573795/

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