ruby-on-rails-3 - 需要一个可能在 :id, 中的周期的 Rails 路由,但也要保留可选的 :format

标签 ruby-on-rails-3 routes

我有一个 Rails 路线,它将股票代码作为 :id

  • feeds/AMZN将为亚马逊返回一个页面
  • feeds/AMZN.csv将返回相同数据的 CSV 表示。

  • 但我还需要容纳像 VIA.B (Viacom) 这样的股票,以便这两条路线都有效:
    feeds/VIA.B (html)
    feeds/VIA.B.csv (csv)
    

    这可能吗?我将如何设置路由?

    最佳答案

    我最近在修补 RubyGems API 时遇到了这个问题(尝试使用 API( flickr.rb )访问 /api/v1/gems/flickr.rb.json 不起作用)。

    诀窍是为路由提供一个正则表达式来处理 :id参数,然后指定有效 :format .请记住,:id regexp需要“懒惰”(必须以问号结尾),否则会吃掉.csv并假设它是 id 的一部分。以下示例将允许 JSON、CSV、XML 和 YAML 格式用于其中包含句点的 id:

    resources :feeds, :id => /[A-Za-z0-9\.]+?/, :format => /json|csv|xml|yaml/
    

    关于ruby-on-rails-3 - 需要一个可能在 :id, 中的周期的 Rails 路由,但也要保留可选的 :format,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6719797/

    相关文章:

    javascript - $locationPath 导致错误 : [$rootScope:inprog]

    javascript - Angular.js 应用程序 : eliminate #! 来 self 的单个帖子的 URL,同时保持 slug

    ruby-on-rails - has_one 关系的 Rails 验证

    ruby-on-rails-3 - Rails 应用程序因 Rack::Lock 而面临性能问题

    javascript - 以变​​量形式传递数据-Highcharts

    ruby-on-rails - 嵌套资源路由助手不起作用

    asp.net-core - Razor Pages 中基于 URL 参数的路由

    ruby-on-rails - 如何在 ruby​​ 中禁用自动日志记录

    ruby-on-rails - rails 3 : How to display many-to-many join in view?

    asp.net-mvc - 在 ASP.NET MVC URL 路由中包含哈希值