Url params编码

时间:2014-05-25 05:58:37

标签: ruby-on-rails

我有这样的路线

/api/service/:id

id是一个类似name.of.something

的字符串

所以网址看起来像是:

/api/service/name.of.something?other=parameters

由于点数,控制器无法正确解析该请求。

如何解码id以将其传递给路线?

1 个答案:

答案 0 :(得分:3)

您需要在路由中添加constraints选项,以使其接受句点。请注意,这将打破Rails'自动格式检测,因此如果您特别需要格式选择,则必须将明确的?format=json传递给URL。

get "api/service/:id", to: "some#endpoint", constraints: {id: /[[:alnum:]_\.-]+/i}

根据您的偏好调整正则表达式。