Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[Rails 开发入门课程] 第四节 Routes

[Rails 开发入门课程] 第四节 Routes

这一节主要介绍 Routes:如何把一个 URL 和 Controller#Action 对应起来。

36ec9d642d476980a04babed3278cd23?s=128

David Zhang

January 15, 2013
Tweet

Transcript

  1. 课前准备 https://github.com/daqing/rails-intro-forum/wiki/Preparing-for-the-course 13年1月17⽇日星期四

  2. RAILS 开发⼊入⻔门课程 Introduction to Web development with Rails @daqing 13年1月17⽇日星期四

  3. ⺫⽬目标 理解 Rails 中的核⼼心概念 了解 Rails 项⺫⽬目的基本开发过程 可以开发简单的 Rails 应⽤用

    13年1月17⽇日星期四
  4. RAILS 开发⼊入⻔门课程 RAILS 运⾏行环境 Model Routes 第⼀一节 第⼆二节 第四节 Controllers

    & Views 第五节 ActiveRecord Association 第六节 Form API 第三节 13年1月17⽇日星期四
  5. 内容回顾 浏览器 Web Server App Server DB Rails API HTTP

    请求处理流程 13年1月17⽇日星期四
  6. RAILS APP 核⼼心结构 DB request Model View Controller ActionPack Routes

    13年1月17⽇日星期四
  7. RAILS APP 核⼼心结构 DB request Model View Controller ActionPack Routes

    13年1月17⽇日星期四
  8. RAILS APP 核⼼心结构 DB request Model View Controller ActionPack Routes

    13年1月17⽇日星期四
  9. ROUTES http://example.com/topics/101 TopicsController < class ApplicationController def show end end

    13年1月17⽇日星期四
  10. RESOURCE 13年1月17⽇日星期四

  11. The concept of resource has evolved during the Web history,

    from the early notion of static addressable documents or files, to a more generic and abstract definition, now encompassing every thing or entity that can be identified, named, addressed or handled, in any way whatsoever, in the Web at large, or in any networked information system. 13年1月17⽇日星期四
  12. topic user comment RESOURCE bookmark cart session 13年1月17⽇日星期四

  13. REST REpresentational State Transfer 13年1月17⽇日星期四

  14. client URL GET POST PUT DELETE REST server 13年1月17⽇日星期四

  15. topic http://example.com/topics GET http://example.com/topics POST http://example.com/topics/101 GET http://example.com/topics/101 PUT http://example.com/topics/new

    GET http://example.com/topics/101/edit GET http://example.com/topics/101 DELETE 13年1月17⽇日星期四
  16. topic http://example.com/topics GET http://example.com/topics POST http://example.com/topics/101 GET http://example.com/topics/101 PUT http://example.com/topics/new

    GET http://example.com/topics/101/edit GET http://example.com/topics/101 DELETE collection member 13年1月17⽇日星期四
  17. RESOURCE ROUTING 13年1月17⽇日星期四

  18. config/routes.rb 13年1月17⽇日星期四

  19. /topics GET /topics POST /topics/:id/edit GET /topics/:id PUT /topics/new GET

    /topics/:id GET /topics/:id DELETE $ rake routes topics new_topics edit_topics topic topics#index topics#create topics#new topics#edit topics#show topics#update topics#destroy 13年1月17⽇日星期四
  20. /topics GET /topics/:id DELETE topics topics#index topics#destroy topic link_to ‘all

    topics’, topics_path link_to ‘all topics’, topics_url link_to ‘delete’, topic_path(@topic), :method => :delete link_to ‘delete’, topic_url(@topic), :method => :delete 13年1月17⽇日星期四
  21. CUSTOM ACTIONS 13年1月17⽇日星期四

  22. config/routes.rb 13年1月17⽇日星期四

  23. /topics/:id/close PUT /topics/hot GET $ rake routes close_topic hot_topics topics#hot

    topics#close link_to ‘close this topic’, close_topic_path(@topic) link_to ‘hot topics’, hot_topics 13年1月17⽇日星期四
  24. NESTED ROUTES 13年1月17⽇日星期四

  25. config/routes.rb 13年1月17⽇日星期四

  26. /topics/:topic_id/comments GET POST GET PUT GET GET DELETE $ rake

    routes topic_comments new_topic_comment edit_topic_comment topic_comment comments#index comments#create comments#new comments#edit comments#show comments#update comments#destroy /topics/:topic_id/comments /topics/:topic_id/comments/new /topics/:topic_id/comments/:id/edit /topics/:topic_id/comments/:id /topics/:topic_id/comments/:id /topics/:topic_id/comments/:id 13年1月17⽇日星期四
  27. NON-RESOURCEFUL ROUTES 13年1月17⽇日星期四

  28. http://github.com/daqing 13年1月17⽇日星期四

  29. http://github.com/daqing get ‘/:nickname’ => ‘users#show_by_nickname’, :as => :nickname_profile 13年1月17⽇日星期四

  30. http://segmentfault.com/q/1010000000159400 13年1月17⽇日星期四

  31. http://segmentfault.com/q/10100000000159400 get ‘/q/:id’ => ‘topics#show’, :constraints => {:id => /\d+/},

    :as => :q 13年1月17⽇日星期四
  32. 推荐阅读 Rails Routing from the Outside In http://guides.rubyonrails.org/routing.html 13年1月17⽇日星期四

  33. QUESTIONS ? 13年1月17⽇日星期四

  34. 谢谢 RAILS 开发⼊入⻔门课程 第四节 ROUTES(完) http://rabelapp.com https://github.com/daqing http://ruby-china.org/daqing 13年1月17⽇日星期四