Ruby on rails 将任意url匹配到控制器
大家好 我正在尝试执行configure routes.rb以允许我执行以下映射:Ruby on rails 将任意url匹配到控制器,ruby-on-rails,Ruby On Rails,大家好 我正在尝试执行configure routes.rb以允许我执行以下映射: /links/quick/"arbitrary comment"/"http://www.arbitrary-site.com/test?a=1" 到links\quick(linkscocontroller.quick)? 我来自django,习惯于使用正则表达式进行这种映射。rails是否有类似的功能?没有提到类似的事情,IRC也没有帮助 如果希望有一个路由并传入其他参数,则通常会使用如下语法: matc
/links/quick/"arbitrary comment"/"http://www.arbitrary-site.com/test?a=1"
到links\quick(linkscocontroller.quick)?
我来自django,习惯于使用正则表达式进行这种映射。rails是否有类似的功能?没有提到类似的事情,IRC也没有帮助 如果希望有一个路由并传入其他参数,则通常会使用如下语法:
match'/links/quick/:comment/:url/test'=>controller
用冒号表示的参数称为段键,它们将接受您在其中输入的任何值。然后,您可以通过调用params[:segment_key](其中:segment_key是段密钥的名称)来访问控制器中的这些段密钥
但是,您可以使用段约束过滤接受的内容。例如,如果您只想在:comment参数中接受一个整数,您将编写:
match'/links/quick/:comment/:url/test'=>controller,:constraints=>{:comment=>/\d+/}
重要的是要知道正则表达式锚定在两端,这样它就不会接受像string99这样的带有一个成员的内容
有关细分限制的更多信息,请参见此。只是让您知道您可能希望提高接受评级。其他用户可能会避开分数较低的用户。为什么url/links/quick/“”,与“/links/quick/:site”不匹配?添加了/会把这搞砸。尝试使用*site(无冒号),它将在/