Rails3的REST很强大了,以前我一直认为rails3无法达到django的url配置灵活度,最近仔细研究了下,发现没有啥问题,差不多麻,:-)
rails3 url配置都在 config/routes.rb中
如果刚刚生成文件,按照文件注释都可以学习很多用法,rails3的配置核心 resources 方法,这个核心很简单,看下源码就知道了,他只是自动生成一组配置,可以看作快捷方式
# In Rails, a resourceful route provides a mapping between HTTP verbs
# and URLs and controller actions. By convention, each action also maps
# to particular CRUD operations in a database. A single entry in the
# routing file, such as
#
# resources :photos
#
# creates seven different routes in your application, all mapping to
# the Photos controller:
#
# GET /photos/new
# POST /photos
# GET /photos/:id
# GET /photos/:id/edit
# PUT /photos/:id
# DELETE /photos/:id
而对resources可以增加block来增加资源下面的配置
resources :others do
collection do
get 'menu1'
end
member do
end
end
对于collection和member的理解很简单,collection对应所有资源,例如search等,而member中配置的为单个资源的操作,比如说订单的审核(单个资源的update)、删除等。
get 'menu1'
需要再others_controller中增加 menu1 函数,而使用
get 'menu1' => :method_name
可以指定函数,这要注意的是
get 'menu1' => 'controller_name#action_name'
使用字符串这样写是指定完整的controller和action
下面要加入url变量,这个再springmvc和django都实现了,今天好奇研究了下rails3的实现
resources :others do
collection do
get ':id/menu4' => :var
end
end
这样url=> /others/1/menu4 就会转到 others#var函数,其中中间的变量 '1'会进入params[:id]中
Next -- as函数,url好帮手
用好as函数,那么在form,a等函数中的url就可以不用配置了,如果用Rest,减少这种url把 /book?id=1
=> /book/1 喵
很简单的as函数可以在官方的文档中使用,
# Sample of named route:
# match 'products/purchase' => 'catalog#purchase', :as => :purchase
# This route can be invoked with purchase_url
当然 as函数也可以加入url变量
# Sample of named route:
# match 'products/:id/purchase' => 'catalog#purchase', :as => :purchase
# This route can be invoked with purchase_url(:id => product.id)
如果配置的url中含有变量的话,调用as中指定的函数也可以加入变量,实现url配置,同事as函数也可以用于更复杂的情况
resources :others do
collection do
get 'menu1'
get 'menu2'
get 'menu3'
get ':id/menu4' => :var, :as=>:menu4
end
end
这种再view调用使用
<%= menu4_others_url(1) %>
还有些嵌套用法,namespace用法还再研究中,如果有机会的话写出来
分享到:
相关推荐
Windows7_Cygwin_Git_RVM_Ruby1.9.3_Rails3_MongoD B_Nginx_Unicorn_Rspec_Guard_Spork(2-Ruby on Rails3 安装配置
支持rails2.0以上版本的配置说明,文档从我自己的博客中整理出来,不愿意用资源分的朋友可以去我的博客看: http://wudihamagong.spaces.live.com/ 或者 http://blog.csdn.net/abcdefg0 ^_^
Rails3教程系列 DRY(Dont Repeat Yourself) DRY(Dont Repeat Yourself) DRY(Dont Repeat Yourself) DRY(Dont Repeat Yourself) DRY(Dont Repeat Yourself) DRY(Dont Repeat Yourself) DRY(Dont Repeat Yourself) DRY...
moonshine, 简单的Rails 部署和配置管理 15分钟部署 Rails 2,3或者应用 MoonshineMoonshine的Rails 部署和配置管理正确完成。通过利用 Capistrano 和 puppet,Moonshine允许你在 15分钟内拥有一个工作应用服务器,...
rails 配置文档 ror ruby on rails
Figaro - 简单的Rails 应用程序配置
Rails 3 in Action 2011年9月新鲜出炉,针对最新的Rails 3.1进行说明
Ruby+on+Rails+3+Tutorial.pdf 应用Rails进行敏捷Web开发第4版.pdf (Agile Web Development with Rails) Rails.Recipes.Rails.3.Edition.pdf
配置高可用的rails,文档图文并茂!易读性强!推荐有一定ruby基础的同学看看!
Rails3消息队列系统 Sidekiq
rails3的英文文档
ruby rails radrails 环境 配置 图片加文字教你如何配置开发环境
Rails3的ActiveRecord 查询API.doc
turbo-sprockets-rails3, 加速你的Rails 3资产 用于 Rails 3.2.x的涡轮链轮 通过只根据源文件的哈希来重新编译已经更改的资产,从而加快 Rails 3 rake assets:precompile的速度只编译一次以生成指纹和非打印的资产...
rails常用命令,例如新建rails项目,新建controller、model 等等
ruby on rails 安装 组件下载 连接mysql mssql等数据库 包含一个完整的一对多数据库例子方案
The Rails™ 3 Way is a comprehensive resource that digs into the new features in Rails 3 and perhaps more importantly, the rationale behind them. —Yehuda Katz, Rails Core The Bible for Ruby on ...
ruby1.8.6 + rails2.0.2 + radrails0.7.2 + mysql 安装配置 详细说明
不敢说是最好的。但绝对是很有用的。 和网上很多文章不一样。很实用。网上的一些文章都转来转去的。 刚开始还会让你越看越晕。这个是我的亲身的体验!所以我把最实用的上传上来,还希望大家...尤其是rails2.0的。