Соответствующий произвольный URL для контроллера - PullRequest
0 голосов
/ 01 июня 2011

Привет всем, я пытаюсь настроить configure. Rb, чтобы я мог выполнить следующее сопоставление:

/links/quick/"arbitrary comment"/"http://www.arbitrary-site.com/test?a=1" 

на links#quick (LinksController.quick)?

Я пришел из django и привык киспользуя регулярные выражения, чтобы сделать этот вид отображения.У рельсов есть что-то эквивалентное?http://edgeguides.rubyonrails.org/routing.html не упоминает ничего подобного и не помогает IRC.

1 Ответ

0 голосов
/ 01 июня 2011

если вы хотите иметь маршрут и передавать дополнительные параметры, то обычно вы используете следующий синтаксис:

match '/links/quick/:comment/:url/test' => controller

Параметры, обозначенные двоеточием, называются ключами сегмента иони примут любую ценность, которую вы в них вложите.Затем вы можете получить доступ к этим ключам сегмента в вашем контроллере, вызвав params [: сегмент_key] (где: сегмент_ключ это имя вашего ключа сегмента) Однако вы можете отфильтровать то, что принято, используя ограничения сегмента.Например, если вы просто хотите принять целое число в параметре: comment, вы должны написать:

match '/links/quick/:comment/:url/test' => controller, :constraints => {:comment => /\d+/}

Важно знать, что регулярное выражение привязывает оба конца, поэтому оно нене принимать что-то вроде string99withanumber

Для получения дополнительной информации об ограничениях сегмента см. ссылка .

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