大家好 我正在尝试配置routes.rb以允许我进行以下映射:
/links/quick/"arbitrary comment"/"http://www.arbitrary-site.com/test?a=1"
到links#quick (LinksController.quick)?
我来自django并习惯使用正则表达式进行这种映射。 rails有相同的东西吗? http://edgeguides.rubyonrails.org/routing.html没有提及类似的内容,IRC也没有帮助。
答案 0 :(得分:0)
如果你想要一个路线并传入其他参数,那么通常你会使用如下语法:
match '/links/quick/:comment/:url/test' => controller
用冒号表示的参数称为段键,它们将接受您放入其中的任何值。然后,您可以通过调用params [:segment_key]来访问控制器中的这些段密钥(其中:segment_key是您的段密钥的名称) 但是,您可以过滤使用分段约束接受的内容。例如,如果你只想在:comment参数中接受一个整数,你可以写:
match '/links/quick/:comment/:url/test' => controller, :constraints => {:comment => /\d+/}
重要的是要知道正则表达式锚定在两端,所以它不会接受像string99withanumber
有关细分受众群限制的详细信息,请参阅此link。