我在Ruby on Rails中有一个控制器,我想做以下事情:
当用户尝试访问控制器时,我想匹配一些参数。例如
domain.com/hello/19213/sayHello
我想将其翻译为:
domain.com/hello/:id/:method
在我的路线文件中。
请记住:method参数可能不存在但是:id将始终存在。
此外,如果可能的话,我想将特定的:方法与我的控制器中的方法相匹配。如果不是,我打算使用开关盒。
有人可以为此提供一个示例以及我必须在routes.rb中添加什么内容吗?
我发现了这个:
match ':controller(/:action(/:id(.:format)))'
但我相信这有点不同,因为我只想匹配特定控制器的路由器而不是我项目中的每个控制器。
由于
答案 0 :(得分:0)
通过方法,我假设您的意思是模型中的方法。如果是这种情况,我相信你在routes.rb
中需要这样的东西match ':controller/:id(/:method)'
圆括号:方法意味着它是可选的。
如果您不包含方法,它将使用params [:id] =:id
评估您的SHOW操作如果你确实包含了一个方法,它将用params [:id] =:id
评估:method这适用于您在控制器中定义的方法