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})?/