我有这样的路线
/api/service/:id
但id
是一个类似name.of.something
所以网址看起来像是:
/api/service/name.of.something?other=parameters
由于点数,控制器无法正确解析该请求。
如何解码id
以将其传递给路线?
答案 0 :(得分:3)
您需要在路由中添加constraints
选项,以使其接受句点。请注意,这将打破Rails'自动格式检测,因此如果您特别需要格式选择,则必须将明确的?format=json
传递给URL。
get "api/service/:id", to: "some#endpoint", constraints: {id: /[[:alnum:]_\.-]+/i}
根据您的偏好调整正则表达式。