Rails笔记《一》Routing

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,如需转载请自行联系原作者

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
完整版:https://download.csdn.net/download/qq_27595745/89522468 【课程大纲】 1-1 什么是java 1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 数组应用 4-3 多维数组 4-4 排序算法 4-5 增强for循环 4-6 数组和排序算法章节练习 5-0 抽象和封装 5-1 面向过程的设计思想 5-2 面向对象的设计思想 5-3 抽象 5-4 封装 5-5 属性 5-6 方法的定义 5-7 this关键字 5-8 javaBean 5-9 包 package 5-10 抽象和封装章节练习 6-0 继承和多态 6-1 继承 6-2 object类 6-3 多态 6-4 访问修饰符 6-5 static修饰符 6-6 final修饰符 6-7 abstract修饰符 6-8 接口 6-9 继承和多态 章节练习 7-1 面向对象的分析与设计简介 7-2 对象模型建立 7-3 类之间的关系 7-4 软件的可维护与复用设计原则 7-5 面向对象的设计与分析 章节练习 8-1 内部类与包装器 8-2 对象包装器 8-3 装箱和拆箱 8-4 练习题 9-1 常用类介绍 9-2 StringBuffer和String Builder类 9-3 Rintime类的使用 9-4 日期类简介 9-5 java程序国际化的实现 9-6 Random类和Math类 9-7 枚举 9-8 练习题 10-1 java异常处理 10-2 认识异常 10-3 使用try和catch捕获异常 10-4 使用throw和throws引发异常 10-5 finally关键字 10-6 getMessage和printStackTrace方法 10-7 异常分类 10-8 自定义异常类 10-9 练习题 11-1 Java集合框架和泛型机制 11-2 Collection接口 11-3 Set接口实现类 11-4 List接口实现类 11-5 Map接口 11-6 Collections类 11-7 泛型概述 11-8 练习题 12-1 多线程 12-2 线程的生命周期 12-3 线程的调度和优先级 12-4 线程的同步 12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-11 zip文件流 13-12 练习题 14-1 图形用户界面设计 14-2 事件处理机制 14-3 AWT常用组件 14-4 swing简介 14-5 可视化开发swing组件 14-6 声音的播放和处理 14-7 2D图形的绘制 14-8 练习题 15-1 反射 15-2 使用Java反射机制 15-3 反射与动态代理 15-4 练习题 16-1 Java标注 16-2 JDK内置的基本标注类型 16-3 自定义标注类型 16-4 对标注进行标注 16-5 利用反射获取标注信息 16-6 练习题 17-1 顶目实战1-单机版五子棋游戏 17-2 总体设计 17-3 代码实现 17-4 程序的运行与发布 17-5 手动生成可执行JAR文件 17-6 练习题 18-1 Java数据库编程 18-2 JDBC类和接口 18-3 JDBC操作SQL 18-4 JDBC基本示例 18-5 JDBC应用示例 18-6 练习题 19-1 。。。
完整版:https://download.csdn.net/download/qq_27595745/89522468 【课程大纲】 1-1 什么是java 1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 数组应用 4-3 多维数组 4-4 排序算法 4-5 增强for循环 4-6 数组和排序算法章节练习 5-0 抽象和封装 5-1 面向过程的设计思想 5-2 面向对象的设计思想 5-3 抽象 5-4 封装 5-5 属性 5-6 方法的定义 5-7 this关键字 5-8 javaBean 5-9 包 package 5-10 抽象和封装章节练习 6-0 继承和多态 6-1 继承 6-2 object类 6-3 多态 6-4 访问修饰符 6-5 static修饰符 6-6 final修饰符 6-7 abstract修饰符 6-8 接口 6-9 继承和多态 章节练习 7-1 面向对象的分析与设计简介 7-2 对象模型建立 7-3 类之间的关系 7-4 软件的可维护与复用设计原则 7-5 面向对象的设计与分析 章节练习 8-1 内部类与包装器 8-2 对象包装器 8-3 装箱和拆箱 8-4 练习题 9-1 常用类介绍 9-2 StringBuffer和String Builder类 9-3 Rintime类的使用 9-4 日期类简介 9-5 java程序国际化的实现 9-6 Random类和Math类 9-7 枚举 9-8 练习题 10-1 java异常处理 10-2 认识异常 10-3 使用try和catch捕获异常 10-4 使用throw和throws引发异常 10-5 finally关键字 10-6 getMessage和printStackTrace方法 10-7 异常分类 10-8 自定义异常类 10-9 练习题 11-1 Java集合框架和泛型机制 11-2 Collection接口 11-3 Set接口实现类 11-4 List接口实现类 11-5 Map接口 11-6 Collections类 11-7 泛型概述 11-8 练习题 12-1 多线程 12-2 线程的生命周期 12-3 线程的调度和优先级 12-4 线程的同步 12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-11 zip文件流 13-12 练习题 14-1 图形用户界面设计 14-2 事件处理机制 14-3 AWT常用组件 14-4 swing简介 14-5 可视化开发swing组件 14-6 声音的播放和处理 14-7 2D图形的绘制 14-8 练习题 15-1 反射 15-2 使用Java反射机制 15-3 反射与动态代理 15-4 练习题 16-1 Java标注 16-2 JDK内置的基本标注类型 16-3 自定义标注类型 16-4 对标注进行标注 16-5 利用反射获取标注信息 16-6 练习题 17-1 顶目实战1-单机版五子棋游戏 17-2 总体设计 17-3 代码实现 17-4 程序的运行与发布 17-5 手动生成可执行JAR文件 17-6 练习题 18-1 Java数据库编程 18-2 JDBC类和接口 18-3 JDBC操作SQL 18-4 JDBC基本示例 18-5 JDBC应用示例 18-6 练习题 19-1 。。。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值