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,如需转载请自行联系原作者
Rails笔记《一》Routing相关推荐
- Ruby on Rails Exception:Routing Error
当开始做Ruby on Rails实际编程时,对于初学者而言总会有些让人感到未知的Exception, 上次以手工方式写了一个简单的Rails Application, 今天下午换用Red Rails ...
- 我的Rails笔记(1)
<Agile Web Development With Rails>Notebook. 环境: Rails 3.1.0 Gem 1.8.10 Ruby ruby 1.9.2p180 1. ...
- rails笔记 cache系统
cache系统 1 cache系统默认只在production下面生效, 要手动生效 修改环境(config/environments) ActionController::Base.perform_ ...
- 《Pro ASP.NET MVC 3 Framework》学习笔记之十八【URL和Routing】
整个项目范围的依赖注入(Project-Wide Dependency Injection) 在书接下来的章节里面,我们会看到MVC框架提供的很多不同的方式来让我们扩展和自定义对请求的处理,每一种方式 ...
- Rails源码笔记-ActiveSupport-core_ext-array
ActiviSupport中包含一些工具类,以及一些对标准类库的扩展. ActiveSupport的内容都是是独立于rails的,因此也可以在非rails的ruby项目中使用. 获取代码 rails的 ...
- MonoRail学习笔记三:使用方便功能强大的routing功能
我们浏览论坛或博客时经常会看到这样的Url:http://www.cnblogs.com/firstyi/archive/2007/10/17/927967.html (这个是博客园中的一个链接),其 ...
- 第六章 Detailed Routing [VLSL Physical Design 学习笔记 ]
文章目录 6.1 术语 6.2 水平和垂直约束图(Horizontal and Vertical Constraint Graphs ) 6.2.1 水平约束图(Horizontal Constrai ...
- [转载备份]Rails创始人DHH新作《Rework》读书笔记:“少!快!精!”
注: 首先向作者致以诚挚的歉意.引用您的文章,并非为了赚取流量与关注,而是为了日后中自己学习使用的备份行为.因我的疏乎及对版规了解的欠缺,向您再一次说声对不起.我除加注此内容外,修改了标题.不知这样的 ...
- Ruby on Rails 学习笔记 - 2 Toy
1. 生成一个User的Model 例1 rails generate scaffold User name:string email:string 生成的Model除了有name, email还有一 ...
- ruby on rails 学习笔记
2019独角兽企业重金招聘Python工程师标准>>> 部署 如何在 Ubuntu 云服务器上部署自己的 Rails 应用 https://ruby-china.org/topics ...
最新文章
- java分布式+高可用_[Java复习] 分布式高可用-Hystrix
- 目前在线教育发展情况介绍
- java paintComponent的一些解读
- 设置tomcat远程debug
- python购物信息整合教程_python实现简单购物商城
- python 的基础 学习 第六天 基础数据类型的操作方法 字典
- visio是什么软件
- listary的使用教程
- 【非参数统计01】非参数统计基本概念:假设检验,经验分布,ARE,分位数,秩检验,U统计量
- rqnoj 2 开心的金明
- 网络带宽压力测试教程
- 生命科学计算机科学结合,生命科学与计算机科学的结合发展研究.docx
- Windows自带截屏-快捷键截图区域至剪切板
- OneTab插件的替代产品-OneTab Pro
- 【最新】2021年注册测绘师考试测绘案例分析真题及答案解析
- C语言 —— 数组(数组的声明、初始化、访问)与字符串指针
- 【SSR和CSR】服务端渲染和客户端渲染区别?如何快速分辨页面是SSR还是CSR?
- Oracle进阶篇之查看执行计划
- ubuntu: 控制查看 进程
- 计算机网络笔记手写板,电脑手写板怎么使用?莫慌!手把手教学来了