rails路由

web敏捷开发 p317

depot > ruby script/console

>>rs = ActionController::Routing::routes

可以简单测试

比如

>>puts rs.routes

>>rs.recognize_path "/store"

>>rs.generate :controller => "store",id => 123

connect 定义路由规则

url_for 可以生成url,但只能在控制器里使用

具名路由

map.index "blog/", :controller => "blog" , :action => "index"

这样就可以使用index_url就可以得到http://pragprog.com/blog

如果使用index_path就可以得到/blog,即没有协议、主机地址、端口

有根路由

在不同子域下访问相同的内容

http://megablogworld.com/dava/blog

http://megablogworld.com/wen/blog

http://megablogworld.com/wang/blog

dava、wen、wang是不同的应用程序实例

设置RAILS_RELATIVE_URL_ROOT

资源

map.resources :articles

比如文章目录是一组资源,一篇文章是一项资源

post get put delete是不同的http请求

depot > rake routes可以查看资源映射的路由

可以看到7个action       index new edit...

:collection 一组资源 get /articles/recent

:member 一项资源 put /articles/1/embargo

:new 新建资源 post /aritcles/new/shortform

嵌套资源

文章的评论是嵌套在文章下的资源

map.resources :articles do |article|

article.resources :comments

# ...

end

浅路由嵌套

format

html请求对应html

xml请求对应xml

map.connect ‘:controller/:action/:id.:format‘

class ProductsController < ApplicationController
# GET /products
# GET /products.xml
def index
@products = Product.find(:all)

respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @products }
end
end

路由测试

assert_generates(path, options , defaults={}, extras={}, message=nil)

这些只是摘要,具体看书吧

rails路由,布布扣,bubuko.com

时间: 2024-08-08 11:18:57

rails路由的相关文章

ROR路由分析

今天开始研究rails路由  基本用法 资源路由 resources :members 配置资源路由后,自动生成默认的7个动作 动作 地址 controller中方法 作用 index /members index 显示列表 show /members/:id show 显示详情 new /members/new new, 方法中要声明对象 进入新建表单页 create /members create 创建 edit /members/:id/edit edit, 方法中要查询对象 进入编辑表单

Rails配置public下静态资源的访问

Rails开发应用,我们会把图片等静态资源直接放到public目录下,这样通过nginx就可以把这些资源当静态资源(不用走Rails)处理并且缓存,为了避免这些静态资源走rails路由,需要对nginx进行配置,例如public目录下有个images目录,需要这样配置: location ~* ^/images/ { root /home/ubuntu/rails_app/public expires 1y; add_header Cache-Control public; add_header

[AWDwR4]13章 Playtime1 的实现

13.PlayTime 1: 向orders表加入ship_date字段,当OrdersController更新这个值后发送一个emial通知.这个官方网站上没有提供参考的答案,论坛里有简单版本我自己实现了一个稍微复杂一点的.  我的思路是在每个order的show模板中加入一个按钮 Ship it now,每个order只有一次ship的机会,这样就避免了重复ship.  step1:  先在 orders_controller 中手动加入ship这个action: # PUT /orders

从 输入网址(URL)到页面展示的过程

1.用户输入url网址(URL) 用户输入url(也就是我们说的网址,也是统一资源定义符,用于定义互联网资源) 比如输入https://www.baidu.com 其中https为协议 baidu.com是域名 www:World Wide Web"首字母的缩写形式."WWW"在我国曾被译为"环球网"."环球信息网"."超媒体环球信息网"等,为什么要加,我猜是规范,有些网址不加www也能访问 有时候域名后面会跟端口号

rails的路由学习

rails的路由里面,几个地方需要注意一下的 1,生成别名,用as,具体查看中文手册 namespace和scope的区别 2,路由里面用namespace的时候,需要在生成controller的时候,也选择创建目录,url里面用的时候需要套上namespace 比如,namespace是aaa,控制器为Test1Controller,路由为 namespace :aaa do root 'test1#index' end 则访问的时候,需要/aaa/test1/,url里面的namespace

[ruby on rails] 跟我学之路由映射

前面<[ruby on rails] 跟我学之Hello World>提到,路由对应的文件是 config/routes.rb 实际上我们只是添加了一句代码: resources :posts 但是这个代码默认的路由却有多个,可以通过 rake routes进行查看,如下: [email protected]:/home/ywt/ror_tests/blog# rake routes Prefix Verb URI Pattern Controller#Action posts GET /po

rails嵌套资源的具名路由

假设有一个user模型,那么,users_path对应index的action,不需要参数,而对于user_path(),后面需要一个参数作为id,例如user_path(@user),表示@user对应的页面,具体含义与get/patch/delete有关 而edit_user_path(@user)和new_user_path与edit和new有关,create没有对应的具名路由. 如果给user嵌套了post资源,其实并没有太过复杂. index对应了user_posts_path(@us

顺丰 丰桥对接 订单路由查询 ruby rails

def self.get_express_route_test url = 'http://bsp-oisp.sf-express.com/bsp-oisp/sfexpressService' xml = "<Request service='RouteService' lang='zh-CN'><Head>4545</Head><Body><RouteRequest tracking_type='1' method_type='1' tra

改变rails的路由中默认的id

目的: /users/2 -> /users/jack 使用to_param方法. 不要改变id到string类型,你需要一个属性是唯一的,比如username,无论什么. 在view里面,确保传递的参数不要是id 一定要是model <td><%= link_to p.name, parse_place_path(p) %></td> 不是 <td><%= link_to p.name, parse_place_path(p.id) %>