在 rails 的 ruby 中定义自定义路由
Define custome routes in ruby on rails
我想用单个控制器和功能处理多个 url 段
这是示例:
1) https://www.somedomain.com/abc 和
2) https://www.somedomain.com/xyz/abc
如何在一行中定义路由,以便两个请求都可以用一个函数执行
就像这里我需要定义两条路线
得到“/:static_page”,到:"SomeController#action_name"
得到“/:static_page/:second_option”,到:"SomeController#action_name"
但是我怎样才能在一行中定义呢?或者可以通过任何其他方式管理此方法。
它被称为包罗万象,是搬起石头砸自己脚的好方法。
match '*path', to: 'some#action_name'
您必须密切注意排序(最后声明它),因为它会捕获与该模式匹配的任何其他路由 - 在这种情况下是所有内容。
它也是一个巨大的错误来源,因为 Rails 现在会接受任何抛给它的请求并将其传递给您的控制器,而不是引发路由错误。例如,那些讨厌的机器人会在您的网站上搜索 WordPress 漏洞。
如果你真的需要一些额外的非restful路由,只需正常声明它们,而不是将所有内容都集中到将成为控制器的怪物中。
我想用单个控制器和功能处理多个 url 段 这是示例:
1) https://www.somedomain.com/abc 和
2) https://www.somedomain.com/xyz/abc
如何在一行中定义路由,以便两个请求都可以用一个函数执行
就像这里我需要定义两条路线 得到“/:static_page”,到:"SomeController#action_name"
得到“/:static_page/:second_option”,到:"SomeController#action_name"
但是我怎样才能在一行中定义呢?或者可以通过任何其他方式管理此方法。
它被称为包罗万象,是搬起石头砸自己脚的好方法。
match '*path', to: 'some#action_name'
您必须密切注意排序(最后声明它),因为它会捕获与该模式匹配的任何其他路由 - 在这种情况下是所有内容。
它也是一个巨大的错误来源,因为 Rails 现在会接受任何抛给它的请求并将其传递给您的控制器,而不是引发路由错误。例如,那些讨厌的机器人会在您的网站上搜索 WordPress 漏洞。
如果你真的需要一些额外的非restful路由,只需正常声明它们,而不是将所有内容都集中到将成为控制器的怪物中。