我有一个问题,你如何制作多个可选参数。 F.E.在我的变体中,我需要类似于“/(:first_name ||:last_name || middle_name || all_names)”。我怎样才能实现并且可以在路线中实现这样的目标?
不过,如果我可以做很多多个参数,那就太好了。 /(:a || :b || :c)/(:d || :e)/(:n || :m)
感谢您的回答。
答案 0 :(得分:2)
您必须完成控制器中的所有条件工作 - 路径用于捕获请求URL&将它们引导到特定功能(控制器/动作)。
因此,您的使用问题
/(:a || :b || :c)/(:d || :e)/(:n || :m)
...从根本上是有缺陷的(你不能在路线中使用“或”条件)。
这些是路径可以采取的可选参数,但不是必须的。
在您的情况下,您需要使用它们来表示传递的名称:
#config/routes.rb
resources :users, path: "" do
get :first_name(/:middle_name(/:last_name)), action: :show, on: :collection
end
如果没有在路由系统中执行自定义操作,这将是您获得的最佳结果......例如拥有slugs
或其他内容。