Ruby on rails 轨道布线:布线中的:条件和:要求之间有什么区别?
我应该在轨道布线中何时使用:条件或:要求 以下是两个例子: :条件Ruby on rails 轨道布线:布线中的:条件和:要求之间有什么区别?,ruby-on-rails,routes,Ruby On Rails,Routes,我应该在轨道布线中何时使用:条件或:要求 以下是两个例子: :条件 map.connect "/foo/:view/:permalink", :controller => "foo", :action => "show", :view => /plain|fancy/, :permalink => /[-a-z0-9]+/, :conditions => { :method => :get } end :要求 map.connect
map.connect "/foo/:view/:permalink", :controller => "foo",
:action => "show", :view => /plain|fancy/,
:permalink => /[-a-z0-9]+/,
:conditions => { :method => :get }
end
:要求
map.connect 'posts/index/:page',
:controller => 'posts',
:action => 'index',
:requirements => {:page => /\d+/ },
:page => nil
end
:条件
采用的唯一选项是:方法
(即:获取
,:发布
,等等),允许您限制可用于访问路由的方法:
:另一方面,requirements
允许您指定参数必须匹配的正则表达式,例如,如果参数是邮政编码,则可以为其指定仅匹配邮政编码的正则表达式:
(您甚至可以删除:requirements
,并使用以下简称:)
查看中的“路由条件”和“正则表达式和参数”,我从中窃取了上述示例
map.connect 'post/:id', :controller => 'posts', :action => 'show',
:conditions => { :method => :get }
map.geocode 'geocode/:postalcode', :controller => 'geocode',
:action => 'show', :requirements => { :postalcode => /\d{5}(-\d{4})?/ }
map.geocode 'geocode/:postalcode', :controller => 'geocode',
:action => 'show', :postalcode => /\d{5}(-\d{4})?/