0

我想接受我的对象的 URL,这些 URL 包含一个未使用的元素,但出于 SEO 的原因,这会很好。例如,我想接受如下网址:

http://localhost:3000/people/USA/123-joe-schmoe

..“/USA”位根本没有任何意义,除了向用户和搜索引擎发出此人居住在美国的信号。

我已经尝试使用通配符设置我的规则,以及例如做类似的事情

match "people/:whatever/:id" => "people#show", :constraints => {:id => /\d+-.*/}, :as => "person"

但这会导致尝试路由到:controller => people, :action => "show", :whatever => #<Person id: 123 ...>哪个失败。

是否可以让路由忽略 :whatever 部分并改为传递我的 :id ?

4

1 回答 1

0

您可以尝试使用通配符匹配

match "people/*/:id => "doctors#show", :constraints=> {:id=>/\d+=.*/}, :as=>"person"
于 2012-05-12T16:41:58.883 回答