deb*_*deb 3 routes ruby-on-rails
我应该何时使用:条件或:rails路由中的要求?
这是两个例子:
:条件
map.connect "/foo/:view/:permalink", :controller => "foo",
:action => "show", :view => /plain|fancy/,
:permalink => /[-a-z0-9]+/,
:conditions => { :method => :get }
end
Run Code Online (Sandbox Code Playgroud)
:要求
map.connect 'posts/index/:page',
:controller => 'posts',
:action => 'index',
:requirements => {:page => /\d+/ },
:page => nil
end
Run Code Online (Sandbox Code Playgroud)
Jor*_*ing 10
唯一的选择:conditions是:method(即:get,:post等),让您限制可以使用哪些方法来访问路由:
Run Code Online (Sandbox Code Playgroud)map.connect 'post/:id', :controller => 'posts', :action => 'show', :conditions => { :method => :get }
:requirements另一方面,允许您指定参数必须匹配的正则表达式,例如,如果参数是邮政编码,您可以为其提供仅与邮政编码匹配的正则表达式:
Run Code Online (Sandbox Code Playgroud)map.geocode 'geocode/:postalcode', :controller => 'geocode', :action => 'show', :requirements => { :postalcode => /\d{5}(-\d{4})?/ }
(你甚至可以删除:requirements并使用这个较短的表格:)
Run Code Online (Sandbox Code Playgroud)map.geocode 'geocode/:postalcode', :controller => 'geocode', :action => 'show', :postalcode => /\d{5}(-\d{4})?/
在ActionController :: Routing中查看"Route conditions"和"Regular Expressions and parameters" ,我从中偷走了上面的例子.
| 归档时间: |
|
| 查看次数: |
2387 次 |
| 最近记录: |