Ruby on rails 将任意url匹配到控制器

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

大家好 我正在尝试执行configure routes.rb以允许我执行以下映射:

/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(无冒号),它将在/