Routing路由

config/routes.rb

match 'patients/:id' => 'patients#show'

<%= link_to 'Show', patient_path(@patient) %>

resources :patiends

GET POST PUT DELETE HEAD

get index
get new
post create
get show
get edit
put update
delete destroy

photos_path

new_photo_path

edit_photo_path(:id)

photo_path(:id)

namespace :admin do
  resources :posts, :comments
end

/admin/posts

/admin/posts/new
/admin/posts
/admin/post/:id
/admin/post/:id/edit
/admin/post/:id
/admin/post/:id

scope :module => 'admin' od
  resources :posts, :comments
end

resources :posts, :comments, :module => 'admin'

scope '/admin' do
  resources :posts, :comments, 
end

resources :posts, path => '/admin/posts'

resources :posts do
  resources :comments
end

post_comments_url
edit_post_comment_url
post_comment_url(@comment)

csrf

cross-site request forgery
resources should never be nested more than 1 level deep.

url_for

<%= link_to 'ad detail', maganize_ad_path(@maganize,@ad) %>
<%= link_to 'ad detail', url_for(@magazine, @ad) %>
<%= link_to 'ad detail', [@magazine,@ad] %>
<%= link_to 'magazine detail', @magazine %>

show 
new
create
edit
update
index
destroy

resources :photos do
 member do 
   get 'preview'
 end
end

preview_photo_url
preview_photo_path

resources :photo do
  get 'preview', :on => :member
end

/photo/11/preview
photoscontroller.preview

resource :photos dd
  collection do
    get 'search'
  end
end

resoruce :photos do
  get 'search', :on => :collection
end

/photos/search

photoscontroller.search

invoke show action of photoscontroller

match ':controller(/:action(/:id))'

match ':controller/:action/:id/:userid'

match ':controller(/:action(/:id))', :controller => admin\/[^\/]+/

match ':controller/:action/:id/with_user/:userid'

match 'photos/:id' => 'photos#show'

match 'photos/:id' => 'photos#show', :default => { :format => 'jpg' }

match 'exit' => 'sessions#destroy', :as => :logout

logout_url

logout_path => /exit

match 'photos/show' => 'photos#show', :via => :get

get 'photos/show'

match 'photos/show' => 'photos#show', :via => [:get, :post]

match 'photos/:id' => 'photos#show', :constraint => { :id => /[A-Z]\d{5}/ }

/photos/A12345

match 'photos/:id' => 'photos#show', :id => /[A-Z]\d{5}/

match '/:id' => 'posts#show', :constraints => { :id => /\d.+/ }

match '/:username' => 'users#show'

match 'photos', :constraints => { :subdomain => 'admin' }

namespace :admin do
  constraints :subdomain => 'admin' do
    resources :photos
  end
end

class BlacklistConstraint
  def initialize
    @ips = Blacklist.retrieve_ips
  end
  
  def matches?(request)
    @ips.include?(request.reqmote_ip)
  end
end

TwitterClone::Application.routes.draw do
  match '*path' => 'blacklist#index',
        :constraints => BlacklistConstraint.new
end

match 'photos/*other' => 'photos#unknown'

photos/12 => params[:other]=12
photos/long/path/to/12 => params[:other]=long/path/to/12

match 'books/*section/:title' => 'books#show'

books/some/section/last-world => params[:section]=some/section, params[:title]=last-world

match '*a/foo/*b' => 'test#index'

zoo/woo/foo/bar/baz => params[:a]=zoo/woo, params[:b]=bar/baz

match '/stories' => redirect('/posts')

match '/stories/:name' => redirect('/posts/%{name}')

match '/stories/:name' => redirect  { |params| '/posts/#{params[:name].pluralize}' }
match '/stories' => redirect { |p,req| '/posts/#{req.subdomain}' }

301 move permanently redirect

root :to => 'page#main'

resources :photos, :controller => 'images'

/photos => imagescontroller

/photos
/photos/new
/photos
/photos/:id
/photos/:id/edit

photos_url
new_photo_path

resources :photos, :constraints => { :id => /[A-Z][A-Z][0-9]+/ }

no longer math /photos/1, instead, /photos/AA8 would match.

constraints(:id => /[A-Z][A-Z][0-9]+/) do
  resources :photos
  resources :accounts
end

resources :photos, :as => 'images'
/photos => photoscontroller

/photos images_path
/photos/new new_image_path
/photos/:id/edit edit_image_path

resources :photos, :path_names => { :name => 'make', :edit => 'change' }

/photos/make
/photos/1/change

scope :path_names => { :name => 'make' } do
  # rest of your routs
end

scope 'admin' do
  resources :photos, :as => 'admin_photos'
end
resources :photos

admin_photos_path, new_admin_photo_path

scope 'admin', :as => 'admin' do
  resources :photos, :accounts
end
resources :photos, :accounts

/admin/photos => admin_photos_path,
/admin/accounts => admin_accounts_path

scope ':username' do
  resources :posts
end

/bob/posts/1 => params[:username]=bob

resources :photos, :only => [:index, :show]

resources :photos, :except => :destroy

scope(:path_names => { :new => 'neu', :edit => 'bearbeiten' }) do
  resources :categories, :path => 'kategorien'
end

/kategorien categories_path
/kategorien/neu new_category_path
/kategorien/:id/bearbeiten edit_category_path(:id)

ActiveSupport::Inflector.inflections do |inflect|
  inflect.irregular 'tooth', 'teeth'
end

resources :magazine do
  resources :ads, :as => 'periodical_ads'
end

magazine_periodical_ads_url
edit_magazine_periodical_ad_path

rake routes  #列出所有的route信息

testing routes

assert_generates '/photos/1', { :controller => 'photos', :action => 'show', :id => '1' }
assert_generates '/about', :controller => 'pages', :action => 'about'

assert_recognizes({ :controller => 'photos', :action => 'show', :id => '1' }, '/photos/1')

assert_recognizes({ :controller => 'photos', :action => 'create' }, { :path => 'photos', :method => :post })

assert_routing({ :path => 'photos', :method => :post}, { :controller => 'photos', :action => 'create' })

本文转自 virusswb 51CTO博客,原文链接:http://blog.51cto.com/virusswb/1045211,如需转载请自行联系原作者

Rails笔记《一》Routing相关推荐

  1. Ruby on Rails Exception:Routing Error

    当开始做Ruby on Rails实际编程时,对于初学者而言总会有些让人感到未知的Exception, 上次以手工方式写了一个简单的Rails Application, 今天下午换用Red Rails ...

  2. 我的Rails笔记(1)

    <Agile Web Development With Rails>Notebook. 环境: Rails 3.1.0 Gem 1.8.10 Ruby ruby 1.9.2p180 1. ...

  3. rails笔记 cache系统

    cache系统 1 cache系统默认只在production下面生效, 要手动生效 修改环境(config/environments) ActionController::Base.perform_ ...

  4. 《Pro ASP.NET MVC 3 Framework》学习笔记之十八【URL和Routing】

    整个项目范围的依赖注入(Project-Wide Dependency Injection) 在书接下来的章节里面,我们会看到MVC框架提供的很多不同的方式来让我们扩展和自定义对请求的处理,每一种方式 ...

  5. Rails源码笔记-ActiveSupport-core_ext-array

    ActiviSupport中包含一些工具类,以及一些对标准类库的扩展. ActiveSupport的内容都是是独立于rails的,因此也可以在非rails的ruby项目中使用. 获取代码 rails的 ...

  6. MonoRail学习笔记三:使用方便功能强大的routing功能

    我们浏览论坛或博客时经常会看到这样的Url:http://www.cnblogs.com/firstyi/archive/2007/10/17/927967.html (这个是博客园中的一个链接),其 ...

  7. 第六章 Detailed Routing [VLSL Physical Design 学习笔记 ]

    文章目录 6.1 术语 6.2 水平和垂直约束图(Horizontal and Vertical Constraint Graphs ) 6.2.1 水平约束图(Horizontal Constrai ...

  8. [转载备份]Rails创始人DHH新作《Rework》读书笔记:“少!快!精!”

    注: 首先向作者致以诚挚的歉意.引用您的文章,并非为了赚取流量与关注,而是为了日后中自己学习使用的备份行为.因我的疏乎及对版规了解的欠缺,向您再一次说声对不起.我除加注此内容外,修改了标题.不知这样的 ...

  9. Ruby on Rails 学习笔记 - 2 Toy

    1. 生成一个User的Model 例1 rails generate scaffold User name:string email:string 生成的Model除了有name, email还有一 ...

  10. ruby on rails 学习笔记

    2019独角兽企业重金招聘Python工程师标准>>> 部署 如何在 Ubuntu 云服务器上部署自己的 Rails 应用 https://ruby-china.org/topics ...

最新文章

  1. java分布式+高可用_[Java复习] 分布式高可用-Hystrix
  2. 目前在线教育发展情况介绍
  3. java paintComponent的一些解读
  4. 设置tomcat远程debug
  5. python购物信息整合教程_python实现简单购物商城
  6. python 的基础 学习 第六天 基础数据类型的操作方法 字典
  7. visio是什么软件
  8. listary的使用教程
  9. 【非参数统计01】非参数统计基本概念:假设检验,经验分布,ARE,分位数,秩检验,U统计量
  10. rqnoj 2 开心的金明
  11. 网络带宽压力测试教程
  12. 生命科学计算机科学结合,生命科学与计算机科学的结合发展研究.docx
  13. Windows自带截屏-快捷键截图区域至剪切板
  14. OneTab插件的替代产品-OneTab Pro
  15. 【最新】2021年注册测绘师考试测绘案例分析真题及答案解析
  16. C语言 —— 数组(数组的声明、初始化、访问)与字符串指针
  17. 【SSR和CSR】服务端渲染和客户端渲染区别?如何快速分辨页面是SSR还是CSR?
  18. Oracle进阶篇之查看执行计划
  19. ubuntu: 控制查看 进程
  20. 计算机网络笔记手写板,电脑手写板怎么使用?莫慌!手把手教学来了

热门文章

  1. 大牛熬夜整理,京东网易滴滴,天津农行软开java面试题合集,大牛已于上个月入职华为!
  2. 使用highEcharts做出中国地图的效果图
  3. python高级语言特长_高级程序设计语言的特点是()
  4. Unity3D零基础视频教程下载(全套+视频)
  5. 方正计算机如何用u盘安装系统,方正电脑用u盘装系统操作方法
  6. 操作系统:操作系统装进U盘的图解教程
  7. 详解-黑莓7290激活教程
  8. 改变世界的十大计算机病毒(图)
  9. Java学习笔记分享之Dubbo篇
  10. wps的range对象