如何忽略路线中的术语?

时间:2012-12-13 20:45:20

标签: ruby-on-rails ruby-on-rails-3

我正在创建一个应该具有可选/忽略的上一个术语的路线。

像这样:

/product/12345/Dark-Knight-Rises # last term is just there for a nice URL

我在思考,通过阅读文档,我只能在上一个术语中使用通配符:

match 'product/:uid/*full_name' => 'product#view', :via => [:get]

那不起作用。我确实让这个工作:

match 'product/:uid/:full_name'   => 'product#view', :via => [:get]
match 'product/:uid'              => 'product#view', :via => [:get]

但是,似乎这应该是可行的在一行。是的?

2 个答案:

答案 0 :(得分:2)

match 'product/:uid(/:full_name)' => 'product#view', :via => [:get]正是您要找的

括号使full_name成为可选参数,您可以忽略它,因为您只需要一个漂亮的URL。

答案 1 :(得分:0)

单行以下应该有效

match 'product/:uid/:full_name'   => 'product#view', :via => [:get]