Направляющие — Params с “точкой” (например, /google.com)

Как вынудить направляющие рассмотреть параметрический усилитель с точкой в значении как google.com (например. /some_action/google.com) единственный параметрический усилитель и нет "id" => "google", "format"=> "com"?

Значение параметра должно быть "id" => "google.com"

18
задан Simone Carletti 29 September 2011 в 18:45
поделиться

1 ответ

По умолчанию динамические сегменты не принимают точки - это связано с тем, что точка используется в качестве разделителя для форматированных маршрутов. Однако вы можете добавить некоторые требования regex к параметрам маршрута. Здесь вы хотите разрешить точки в параметрах.

match 'some_action/:id' => 'controller#action', :constraints  => { :id => /[0-z\.]+/ }

И в rails 2.3:

map.connect 'some_action/:id', :controller => 'controller', :action => 'action',  :requirements => { :id => /[0-z\.]+/ } 

Relevent rails guides section

30
ответ дан 30 November 2019 в 07:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: