添加匹配特定模式的路由

时间:2011-07-06 22:23:53

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

我在Ruby on Rails中有一个控制器,我想做以下事情:

当用户尝试访问控制器时,我想匹配一些参数。例如

domain.com/hello/19213/sayHello

我想将其翻译为:

domain.com/hello/:id/:method

在我的路线文件中。

请记住:method参数可能不存在但是:id将始终存在。

此外,如果可能的话,我想将特定的:方法与我的控制器中的方法相匹配。如果不是,我打算使用开关盒。

有人可以为此提供一个示例以及我必须在routes.rb中添加什么内容吗?

我发现了这个:

match ':controller(/:action(/:id(.:format)))'

但我相信这有点不同,因为我只想匹配特定控制器的路由器而不是我项目中的每个控制器。

由于

1 个答案:

答案 0 :(得分:0)

通过方法,我假设您的意思是模型中的方法。如果是这种情况,我相信你在routes.rb

中需要这样的东西
match ':controller/:id(/:method)'

圆括号:方法意味着它是可选的。

如果您不包含方法,它将使用params [:id] =:id

评估您的SHOW操作

如果你确实包含了一个方法,它将用params [:id] =:id

评估:method

这适用于您在控制器中定义的方法