Определите обычные маршруты в рубине на рельсах - PullRequest
0 голосов
/ 10 октября 2019

Я хочу обработать несколько сегментов URL с одним контроллером, и вот пример функции:

1) https://www.somedomain.com/abc и

2) https://www.somedomain.com/xyz/abc

как я могу определить маршруты в одной строке, чтобы оба запроса можно было выполнить с помощью одной функции

как здесь, мне нужно определить два маршрута get "/: static_page", чтобы: "SomeController # action_name"

get "/: static_page /: second_option", чтобы: "SomeController # action_name"

Но как я могу определить в одной строке? или может управлять этим подходом любым другим способом.

1 Ответ

0 голосов
/ 10 октября 2019

Он называется универсальным и является превосходным способом выстрелить себе в ногу.

match '*path', to: 'some#action_name'

Вы должны уделять очень пристальное внимание порядку (объявите его последним), так как он поймает любой другоймаршруты, которые соответствуют шаблону - в этом случае все.

Это также огромный источник ошибок, так как Rails теперь будет принимать любой запрос и передавать его вашему контроллеру вместо того, чтобы выдавать ошибку маршрутизации. Как, например, те надоедливые боты, которые контролируют ваш сайт на предмет уязвимостей WordPress.

Если вам действительно нужны какие-то дополнительные маршруты без перерыва, просто объявите их как обычно, вместо того, чтобы встраивать все в то, что станет чудовищем контроллера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...