我什么时候应该在 Rails 路由中使用 :conditions 或 :requirements ?

这里有两个例子:

:使适应

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

最佳答案

:conditions 的唯一选项是 :method (即 :get:post 等),让您限制哪些方法可用于访问路由:



另一方面,:requirements 允许您指定参数必须匹配的正则表达式,例如如果参数是邮政编码,您可以给它一个仅匹配邮政编码的正则表达式:



(你甚至可以去掉 :requirements 并使用这个更短的形式:)



查看 ActionController::Routing 中的“路由条件”和“正则表达式和参数”,我从中窃取了上述示例。

关于ruby-on-rails - Rails 路由 : what is the difference between :conditions and :requirements in routing?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1862392/

10-13 04:50