【发布时间】:2011-05-15 11:09:13
【问题描述】:
我想如下设置路由
-
/url/http://google.com到urls控制器和index操作。
我现在在routes.rb 中拥有的是:
match "urls/:url" => "urls#index"
路由似乎不起作用,因为:url 中的斜线。
【问题讨论】:
标签: ruby-on-rails
我想如下设置路由
/url/http://google.com 到 urls 控制器和 index 操作。我现在在routes.rb 中拥有的是:
match "urls/:url" => "urls#index"
路由似乎不起作用,因为:url 中的斜线。
【问题讨论】:
标签: ruby-on-rails
get ':klass/:id', constraints: { klass: /\D*/ }
【讨论】:
或者你可以使用 Route Globbing:
match "urls/*url" => "urls#index"
您可以通过以下方式访问控制器中的值
params[:url]
参考: http://guides.rubyonrails.org/routing.html 搜索“路由匹配”
【讨论】:
match '/services/:controller/*path/:id' => "/services/:controller#show", :via => :get 并转到/services/foo/a/b 我得到uninitialized constant FooController。不过,/services/foo 和 /services/foo/a 可以工作。
你可以做类似的事情
match "urls/:url" => "urls#index", :constraints => {:url => /.*/}
在 Rails 2.3 中,它可能在 Rails 3 中工作,以允许您匹配 :url 中的 /(虽然,我目前无法测试。)
【讨论】: