什么.:格式在rake路线中意味着什么

 staback郭_122 发布于 2023-02-13 15:07

我输入了rake路线,我得到了一堆这样的网址 - /articles/:id(.:format)

我的问题是 - .:format意思是什么?从Rails Guides Routing文章中不清楚,.:formatStackOverflow或google上没有其他有用的匹配.有一种类似的格式,/:controller(/:action(/:id(.:format)))我也不明白.

谢谢

编辑跟进问题 -

如果我只想路由HTML页面.最佳做法是在路由中指定类似.:html的内容或使用.:format并为format.html写一个respond_to块?在后一种情况下,是否会忽略所有其他格式?

1 个回答
  • 这是所请求文件的格式.例如,如果你想要一个图像,你可能在请求中有一个文件扩展名 - 例如,example.com/example_image.png 会给你格式为png.然后将其包含在请求中,以便根据所请求的格式改变响应类型.

    对于一个用法示例,您可能希望允许将资源表示为pdf,作为普通的html页面和json - 您可能会编写如下内容:

    respond_to do |format|
      format.html { ... }
      format.pdf { ... }
      format.json { ... }
    end
    

    然后在相应的格式下进行单独的渲染调用.


    编辑:

    说明GET /:controller(/:action(/:id(.:format))) :controller#:action-

    首先,关于格式化.括号表示给定的数据是可选的.冒号意味着它在相应URL中找到的任何字符串都应该传递给params散列中的控制器.

    这本质上是一个通配符匹配器,它将尝试将大量请求与控制器进行匹配.例如,假设这是你唯一的路线,有人试图获得'/ users'.这将映射usersUsersController,并在其中默认调用/ render index.如果有人获得users/new,new将调用控制器内的操作.如果idformat被调用,它们也将被传递给控制器​​.

    2023-02-13 15:10 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有