Единственный вариант :conditions
дублей - :method
(т. Е. :get
, :post
и т. Д.), Позволяющий вам ограничить выбор методов доступа к маршруту:
map.connect 'post/:id', :controller => 'posts', :action => 'show',
:conditions => { :method => :get }
:requirements
, с другой стороны, позволяет указать регулярное выражение, которому должен соответствовать параметр, например если параметр является почтовым индексом, вы можете задать ему регулярное выражение, соответствующее только почтовым индексам:
map.geocode 'geocode/:postalcode', :controller => 'geocode',
:action => 'show', :requirements => { :postalcode => /\d{5}(-\d{4})?/ }
(Вы даже можете опустить :requirements
и использовать эту более короткую форму:)
map.geocode 'geocode/:postalcode', :controller => 'geocode',
:action => 'show', :postalcode => /\d{5}(-\d{4})?/
Посмотрите "Условия маршрута" и "Регулярные выражения и параметры" в ActionController :: Routing , из которого я украл приведенные выше примеры.