gpt4 book ai didi

ruby-on-rails - Rails 3 路线 : Default format and also limited formats

转载 作者:数据小太阳 更新时间:2023-10-29 08:39:24 35 4
gpt4 key购买 nike

我在结合 2 个 Rails 路由功能(默认参数和参数匹配)时遇到问题。每一个独立起来都很容易解决,但是当结合起来时,结果并不完全是我所追求的。

规则:

get "/foobars(.:format)" => "foobars#index", :defaults => {:format => :json}, :format => /(xml|json)/

我想要的:

  1. format 参数是可选的
  2. 如果没有包含format,则默认格式为json
  3. 如果包含format,请确保它只是xmljson
  4. 如果传递了不受支持的格式,例如html,则此路由规则不应匹配。

我得到了什么:

  1. format 参数是可选的
  2. 如果没有包含format,则默认格式为json
  3. 如果包含format,请确保它只是xmljson
  4. 如果传递了不受支持的格式,例如baz,则此路由规则匹配并将格式设置为JSON

#4 点的区别是我要解决的问题。换句话说,我在追求这个:

GET /foobars      => "foobars#index"  with format `json`
GET /foobars.json => "foobars#index" with format `json`
GET /foobars.xml => "foobars#index" with format `xml`
GET /foobars.baz => "something#else" handled by another route rule lower down

我在这里做错了什么?

最佳答案

您是否尝试过将最后一部分作为约束条件?

get "/foobars(.:format)" => "foobars#index", :defaults => {:format => :json}, :constraints => {:format => /(xml|json)/}

关于ruby-on-rails - Rails 3 路线 : Default format and also limited formats,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14159876/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com