ruby-on-rails - Rails 路由多个可选参数

标签 ruby-on-rails ruby-on-rails-4 routes

我有一个问题,如何制作多个可选参数。 F.e.在我的变体中,我需要与“/(:first_name || :last_name || middle_name || all_names)”类似的东西。我怎样才能实现以及我可以在 route 实现这样的事情吗?

顺便说一句,如果我可以做很多多个参数,那就太好了:

/(:a || :b || :c)/(:d || :e)/(:n || :m)

感谢您的回答。

最佳答案

您必须在 Controller 中完成所有条件工作 - 路由用于捕获请求 URL 并将其定向到特定功能( Controller /操作) .

因此,您的使用问题

/(:a || :b || :c)/(:d || :e)/(:n || :m)

...从根本上来说是有缺陷的(路由中不能有条件“或”)。


可以拥有的是bound parameters :

enter image description here

这些是路由可以采用的可选参数,但不是必须采用的参数。

在您的情况下,您需要使用它们来表示已传递的名称:

#config/routes.rb
resources :users, path: "" do
   get :first_name(/:middle_name(/:last_name)), action: :show, on: :collection
end

这是您无需在路由系统中执行某些自定义操作(例如使用 slugs 或其他内容)所能获得的最佳结果。

关于ruby-on-rails - Rails 路由多个可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33155103/

相关文章:

ruby-on-rails - 将 Date 对象转换为 TimeWithZone

ruby-on-rails-4 - 尝试使用 griddler-sendgrid gem 获取电子邮件的密件抄送数据

ruby-on-rails - Heroku 暂存环境未部署所有图像和 CSS

ruby-on-rails-4 - Rails 4.2 - 如何正确使用 rails sanitize 来防止跨脚本漏洞

zend-framework - Zend URL 助手和自定义路由?

flutter - 当我的小部件使用字符串ID进行引用时,如何将参数传递给有状态的小部件?

ruby-on-rails - Rails 操作邮件程序 : images in emails

ruby-on-rails - 如何编写一个 Rails 查询来按月返回计数?

ruby-on-rails - Prawn - 在text_box展开后向下移动光标

ruby-on-rails - 具有嵌套路由的 api 规范失败