使用包含斜杠(/)的参数进行Rails路由

TK.*_*TK. 24 ruby-on-rails

我想按如下方式设置路线

  • /url/http://google.comurls控制器和index行动.

我现在所拥有的routes.rb是:

match "urls/:url" => "urls#index"
Run Code Online (Sandbox Code Playgroud)

路由似乎不起作用,因为削减了:url.

Imr*_*ran 34

或者你可以使用Route Globbing:

match "urls/*url" => "urls#index"
Run Code Online (Sandbox Code Playgroud)

您可以通过访问控制器中的值 params[:url]

参考:http: //guides.rubyonrails.org/routing.html搜索"Route Globbing"


dj2*_*dj2 18

你可以做类似的事情

match "urls/:url" => "urls#index", :constraints => {:url => /.*/}
Run Code Online (Sandbox Code Playgroud)

在Rails 2.3中,它可以在Rails 3中工作,允许你匹配:url中的/(虽然,我现在无法测试它.)