- 浏览: 274314 次
- 性别:
- 来自: 尤溪
文章分类
最新评论
-
palytoxin:
我现在也发现是这样
关于分享 -
float2net:
Java社区,分享有利于提高。
关于分享 -
hz_qiuyuanxin:
头晕啊,啊邱
RSpec学习笔记 -
reyesyang:
...
关于分享 -
Hooopo:
一般实现map都先实现each
在 Ruby 中对树状结构(tree)进行 map 操作
参考链接:http://guides.rubyonrails.org/routing.html
多个简单的RESTful的路由可以这样定义:
以上代码相当于:
单数形式的Resource:
map.resource将生成6个路由规则,与复数形式的resources所不同的是,复数形式多了一个index的action对应的规则,单数形式不需要index,只需要一个show即可。生成的url稍微有所不同,不过和复数形式的resources一样,这些url不用记,有规律,很容易想到该怎么写。
可以通过:controller选项修改RESTful路由默认的controller,比如:
本来pohtos的controller是PhotosController,这里变成了ImagesController。
=begin
guides中有这么个用法:
可我试了,好像并不是这么回事。
我仿着写了一段:
可我访问/admin/books时Rails却报告No route matches。再试了一下访问/books,却有结果了,结果是:NameError in AdminbooksController#index ——它在原来的BooksController前边加了一个Admin并且把B小写了……
翻了Rails的api也没见着这个:namespace的用法,实在搞不明白。
=end
:singular选项
如果rails不认识某个单词的单数形式,可以通过:singular来设置:
比如有如下routes代码:
这时候如果在页面上或者Controller里使用tooth_url,Rails会不认识这个tooth——teeth的单数形式,这种情况下就可以加上:singular => "tooth":
:as选项
用于修改路由能够识别的url,例如有如下routes代码:
这时访问/images会被Rails识别,并且调用PhotosController的index方法。但/photos这个URL将不再被Rails识别。
:conditions选项
用于限制能够被识别的请求的HTTP动作,一般不推荐用于RESTful的路由规则中。但可以在map.connect等方法中使用。
用法:
:requirements选项
用于限制url参数的格式,比如:
这样,/photos/1将不再被识别,/photos/AB2会被识别。
:path_name选项
用于给自动生成的URL中的'new'和'edit'重命名,但并不改变这两个action的名称,用法:
以上,/photos/make仍然调用controller里的new方法。
如果你希望整个rails项目中都使用上面的url,而不是默认的new、edit,可以在enviroment.rb中这样配置:
:only、:except选项
:has_one、:has_many 嵌套资源的一种简洁写法:
2.x的rails开始支持namespace:
/admin/photos 将调用Admin::PhotosController的index方法。
:member :collection选项
GET /photos/1/preview
POST /photos/1/prepare
GET /photos/search
后面是比较常用的connect的用法,比较熟悉,就不记了。倒是有个with_options第一次见到:
用于批量设置一组具有某相同选项的路由规则。
rake routes 可以在控制台按顺序输出所有的路由规则。
多个简单的RESTful的路由可以这样定义:
map.resources :photos, :books, :videos
以上代码相当于:
map.resources :photos map.resources :books map.resources :videos
单数形式的Resource:
map.resource将生成6个路由规则,与复数形式的resources所不同的是,复数形式多了一个index的action对应的规则,单数形式不需要index,只需要一个show即可。生成的url稍微有所不同,不过和复数形式的resources一样,这些url不用记,有规律,很容易想到该怎么写。
可以通过:controller选项修改RESTful路由默认的controller,比如:
map.resources :photos, :controller => "images"
本来pohtos的controller是PhotosController,这里变成了ImagesController。
=begin
guides中有这么个用法:
引用
You can also specify a controller namespace with the :namespace option instead of a path:
This can be especially useful when combined with with_options to map multiple namespaced routes together:
That would give you routing for admin/photos and admin/videos controllers.
map.resources :adminphotos, :namespace => "admin", :controller => "photos"
This can be especially useful when combined with with_options to map multiple namespaced routes together:
map.with_options(:namespace => "admin") do |admin| admin.resources :photos, :videos end
That would give you routing for admin/photos and admin/videos controllers.
可我试了,好像并不是这么回事。
我仿着写了一段:
map.with_options(:namespace=>'admin') do |admin| admin.resources :books, :box end
可我访问/admin/books时Rails却报告No route matches。再试了一下访问/books,却有结果了,结果是:NameError in AdminbooksController#index ——它在原来的BooksController前边加了一个Admin并且把B小写了……
翻了Rails的api也没见着这个:namespace的用法,实在搞不明白。
=end
:singular选项
如果rails不认识某个单词的单数形式,可以通过:singular来设置:
比如有如下routes代码:
map.resources :teeth
这时候如果在页面上或者Controller里使用tooth_url,Rails会不认识这个tooth——teeth的单数形式,这种情况下就可以加上:singular => "tooth":
map.resources :teeth, :singular => "tooth"
:as选项
用于修改路由能够识别的url,例如有如下routes代码:
map.resources :photos, :as => "images"
这时访问/images会被Rails识别,并且调用PhotosController的index方法。但/photos这个URL将不再被Rails识别。
:conditions选项
用于限制能够被识别的请求的HTTP动作,一般不推荐用于RESTful的路由规则中。但可以在map.connect等方法中使用。
用法:
map.connect 'photo/:id', :controller => 'photos', :action => 'show', :conditions => { :method => :get }
:requirements选项
用于限制url参数的格式,比如:
map.resources :photos, :requirements => {:id => /[A-Z][A-Z][0-9]+/}
这样,/photos/1将不再被识别,/photos/AB2会被识别。
:path_name选项
用于给自动生成的URL中的'new'和'edit'重命名,但并不改变这两个action的名称,用法:
map.resources :photos, :path_names => { :new => 'make', :edit => 'change' }
以上,/photos/make仍然调用controller里的new方法。
如果你希望整个rails项目中都使用上面的url,而不是默认的new、edit,可以在enviroment.rb中这样配置:
config.action_controller.resources_path_names = { :new => 'make', :edit => 'change' }
:only、:except选项
引用
By default, Rails creates routes for all seven of the default actions (index, show, new, create, edit, update, and destroy) for every RESTful route in your application. You can use the : only and :except options to fine-tune this behavior. The : only option specifies that only certain routes should be generated:
With this declaration, a GET request to /photos would succeed, but a POST request to /photos (which would ordinarily be routed to the create action) will fail.
The :except option specifies a route or list of routes that should not be generated:
In this case, all of the normal routes except the route for destroy (a DELETE request to /photos/id) will be generated.
map.resources :photos, :only => [:index, :show]
With this declaration, a GET request to /photos would succeed, but a POST request to /photos (which would ordinarily be routed to the create action) will fail.
The :except option specifies a route or list of routes that should not be generated:
map.resources :photos, :except => :destroy
In this case, all of the normal routes except the route for destroy (a DELETE request to /photos/id) will be generated.
引用
If your application has many RESTful routes, usingnly and :except to generate only the routes that you actually need can cut down on memory use and speed up the routing process.
:has_one、:has_many 嵌套资源的一种简洁写法:
map.resources :photos, :has_one => :photographer, :has_many => [:publications, :versions]
2.x的rails开始支持namespace:
map.namespace(:admin) do |admin| admin.resources :photos, :has_many => { :tags, :ratings} end
/admin/photos 将调用Admin::PhotosController的index方法。
:member :collection选项
map.resources :photos, :member => { :preview => :get } map.resources :photos, :member => { :prepare => [:get, :post] } map.resources :photos, :collection => { :search => :get }
GET /photos/1/preview
POST /photos/1/prepare
GET /photos/search
引用
A Note of Caution
If you find yourself adding many extra actions to a RESTful route, it’s time to stop and ask yourself whether you’re disguising the presence of another resource that would be better split off on its own. When the :member and :collection hashes become a dumping-ground, RESTful routes lose the advantage of easy readability that is one of their strongest points.
If you find yourself adding many extra actions to a RESTful route, it’s time to stop and ask yourself whether you’re disguising the presence of another resource that would be better split off on its own. When the :member and :collection hashes become a dumping-ground, RESTful routes lose the advantage of easy readability that is one of their strongest points.
后面是比较常用的connect的用法,比较熟悉,就不记了。倒是有个with_options第一次见到:
map.with_options :controller => 'photo' do |photo| photo.list '', :action => 'index' photo.delete ':id/delete', :action => 'delete' photo.edit ':id/edit', :action => 'edit' end
用于批量设置一组具有某相同选项的路由规则。
rake routes 可以在控制台按顺序输出所有的路由规则。
发表评论
-
rails测试中遇到的一些问题
2010-09-03 11:41 25161,页面的测试。 假设某view中有一个表单,表单里有3个字段 ... -
BDD on Rails
2010-05-11 02:59 0首先,嘿嘿,我对敏捷 ... -
强大的 Rails 2 查询、搜索插件:SearchLogic
2010-04-20 23:31 5428发现还有人在看这个博客,这个 SearchLogic 只支持 ... -
authlogic-openid
2010-04-20 00:32 0http://github.com/binarylogic/a ... -
测试驱动开发实战(authlogic学习笔记)
2010-04-17 00:06 0这会是个很cool的笔记 cucumber还不会用,只用R ... -
RoR简单培训。
2010-04-12 10:08 0目的 上周二Bob给大家从总体上概括了一下Rails的开发。我 ... -
用RSpec和Webrat为页面写测试
2010-03-10 23:26 0The RSpec Book 23章(不完全照书上记,而是我自 ... -
rails杂记
2010-03-08 11:36 1429=======Rails2======= 用RSpec测试A ... -
Rails文件上传利器——paperclip笔记
2010-02-27 12:04 14931Githubhttp://wiki.github.com/th ... -
为SearchLogic添加一个remote_form_for方法。
2010-02-10 15:00 1382稍微看了一下,好像挺简单,只是处理了一下参数。 # A ... -
A Guide to Testing Rails Applications
2010-02-03 19:56 0什么是Fixtures fixtures允许你在测试运行之前往 ... -
改个bug
2010-01-20 17:38 1209问题见:http://yuan.iteye.c ... -
reset/reload
2010-01-20 16:26 1128http://caboo.se/doc/classes/Act ... -
Acts As Taggable On Steroids
2010-01-20 13:53 2599参考着mephisto写blog程序 ... -
Active Record Validations and Callbacks
2009-10-18 02:45 2364参考链接:http://guides.ru ... -
Layout in Rails
2009-10-12 17:28 4731参考链接:http://guides.rubyonrails. ... -
Rendering in Rails
2009-10-10 02:10 4516参考链接:http://guides.rubyonrails. ... -
如何为Rails的views写测试。
2009-10-01 16:53 1110原文链接:http://weblog.jamisbuck.or ... -
Rails Form helpers
2009-09-28 03:31 5165参考链接:http://guides.ru ... -
rails中分模块开发。
2009-09-18 14:48 2302我没事就喜欢拿blog练手,blog简单嘛。 嗯,其实这是 ...
相关推荐
rails 2.3 chm文档 官方最新版
Railsbrain是一个专注于Rails框架的在线资源平台,而这个“railsbrain网站的rails2.3文档(bug修复版)”显然是一份针对Rails 2.3版本的更新文档,旨在修复用户在浏览和交互过程中遇到的问题。Rails是Ruby编程语言的...
Ruby on Rails Guide:是rails官方教程,本人为了大家学习查阅的方便,制成chm格式。就如同java doc的chm格式一样方便。
所有必需的信息都可以在Wiki上找到: 如有疑问,请使用i18_routing谷歌论坛: 适用于Rails 2.3、3.0、3.1和3.2下一个版本的TODO(写于2010年6月9日) 处理同一资源名称的多个翻译(例如:嵌套和非嵌套资源) 处理...
Rails是一个基于Ruby语言的开源Web应用程序框架,它遵循模型-视图-控制器(MVC)架构模式,旨在提高开发效率和代码的可读性。 在这个API文档中,你可以找到关于以下关键知识点的详细信息: 1. **Ruby语法基础**:...
gem "rails-routes" 然后执行: $ bundle 或自己安装为: $ gem install rails-routes 用法 将这个gem添加到您的项目后,您可以在config/routes创建多个路由文件。 只要确保您用 # config/routes/v1.rb Rails . ...
Rails 3.2 API 是一个重要的开发资源,主要用于Ruby on Rails框架的开发。Rails是基于Ruby语言的一个开源Web应用程序框架,遵循MVC(Model-View-Controller)架构模式,广泛应用于构建动态网站和Web应用程序。Rails ...
描述中的 "ruby and rails 的框架rails-2.3.3.zip" 提到的是 Rails 的另一个版本 2.3.3,尽管与标题中的版本号不完全匹配,但我们可以推断这是关于 Rails 2.3.x 系列的讨论。这个压缩包很可能包含了 Rails 框架的源...
标题 "rails查询学习笔记" 涉及的是Ruby on Rails框架中的数据库查询技术。Ruby on Rails,简称Rails,是一款基于Ruby语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,使得开发Web应用更加高效...
Rails 2.3 和 3 兼容。 关于 PgQ 安装 安装天空工具:Ubuntu 11.10: # apt-get install postgresql-server postgresql-client # apt-get install skytools 宝石档案: gem 'pgq' 从 database.yml 创建股票...
rails官网入门笔记的翻译,非常不错的rubyonrails入门教程!
rails guides的CHM版本,这个向导的版本是2.3
ember-cli-rails-routes 安装 将此添加到您的Gemfile并bundle install gem 'ember-cli-rails-routes' 设置 Rails应用 在您的routes.rb文件中: ember_app :foo , scope : :app , path : 'frontend' 这反映了...
将 Grape API 路由装入 Rails 后,Grape API 路由通常不会打印在rake routes或/rails/info/routes 。 这个 gem 将 Grape 的路由打印功能添加到 Rails 中。 用法 将此行添加到您的Gemfile gem 'grape-rails-routes...
Atom Rails Routes是一款专门为Ruby on Rails开发者设计的Atom编辑器插件。它提供了强大的自动化功能,以提高开发效率,特别是对于处理Rails应用中的路由工作。这款插件由两个主要组件组成:Autocomplete Provider...
综上所述,Ruby on Rails的笔记内容涵盖了从安装Rails环境到创建和运行一个简单的Rails项目的基础知识,这些内容对于初学者来说是学习Rails框架的极好入门材料。通过对这些知识点的学习,初学者可以快速了解Rails的...
从给定的文件信息来看,这份文档是陈刚关于Ruby on Rails的学习笔记,旨在帮助初学者更好地理解并掌握Ruby on Rails这一流行的Web开发框架。以下是对文档中提及的关键知识点的详细解析: ### 安装与配置 #### Ruby...
### Ruby on Rails 笔记知识点总结 #### 一、引言 在《Ruby on Rails笔记》中,作者陈刚分享了他在学习Ruby on Rails过程中的经验与心得。这份笔记不仅包含了作者的学习历程和个人体会,还汇集了他在学习过程中遇到...
### Rails 入门详细笔记知识点解析 #### 一、环境搭建 在开始使用 Rails 进行开发之前,首先需要确保你的开发环境满足以下条件: - **Ruby 版本**:推荐使用 Ruby 1.9.2 或更高版本。这是因为早期版本如 1.8.7 ...