[Rails学习之路]Rails路由配置
如果是使用Rails的默认约定,那么几乎是零配置。
但有些时候,我们可能不得不(或者更喜欢)进行一些特殊的配置。
其实Rails在路由功能中也有很丰富的配置选项。
routes.rb文件中靠前的规则优先级更高。可以手工设定路由:
get 'meetings/:id' => 'events#show'
典型路由,匹配URL:
match ':controller(/:action(/:id(.:format)))', :via => :all
括号表示可以省略。等价于下面这六个规则:
match '/:controller', via: :all
match '/:controller/:action', via: :all
match '/:controller/:action/:id', via: :all
match '/:controller.:format', via: :all
match '/:controller/:action.:format', via: :all
match '/:controller/:action/:id.:format', via: :all
可以对匹配做一些限定。如限定整数id:
match "/events/show/:id" => "events#show", :constraints => {:id => /\d/}
路由规则可以命名为一个helper,如:
get '/meetings' => 'events#index', :as => "meetings"
可以产生meetings_path,对应'/meetings' => 'events#index'这种路由。
重定向:
get "/foo" => redirect("/bar")
设置首页:
root :to => 'welcome#show'
嵌套资源的路径:
resources :projects do
resources :tasks
end
这样产生的Helper为
project_tasks_path(@project)和project_task_path(@project, @task),网址如projects/123/tasks和projects/123/tasks/123。
其他的配置如scope和namespace暂时用不到,以后用到了再去看。
[Rails学习之路]Rails路由配置的更多相关文章
- [Rails学习之路]Rails文件结构与路由
		
约定优于配置和RESTful是Ruby on Rails十分推崇的哲学.在一个默认的RESTful的Rails项目中,使用资源和HTTP动词来帮助组织项目. 假如有一个使用scaffold创建的Rai ...
 - 开始了大概三四天的Rails学习之路
		
最近因为一位极光推送朋友,我开始了大概三四天的Rails学习之路,最终达到的水平是可以比较轻松地做出大部分功能,然后自我感觉可以自如地按照Rails的设计思想去思考.由于编程的日益流行,我结识了越来越 ...
 - Django学习手册 - 正则URL路由配置/路由分发
		
############################################### 总结: 一.url路由配置: 方式一:(通过url链接get获取) 方式二:(url路由匹配方式获取-拓 ...
 - [Rails学习之路]初识Ruby(一)
		
Ruby是一门动态的.强类型的.纯面向对象的编程语言.它和Python非常相似,但比Python面向对象更加彻底.使用更加灵活.语法更加复杂.也更为有趣. 抛开做事情到底应该有多少种方法这个问题,我相 ...
 - [Rails学习之路]初识Ruby(二)
		
继续上次Ruby的学习.接下来就到了Ruby的方法. Ruby的方法与Python仍然很像.使用def定义,可以使用undef取消定义. 在Ruby中,经常可以看见方法后面跟有"?" ...
 - 【Ruby on Rails 学习一】ubuntu14.04配置rvm与ruby
		
要安装ruby,首先要安装rvm,借助rvm安装ruby rvm 的全称是 Ruby Version Manager ,是一款由 Wayne E. Seguin 开发的一款命令行工具.rvm 能够让 ...
 - JAVA学习之路(环境配置,)
		
最近过去的寒假我就开始看一些JAVA的学习视频了,视频是毕向东老师的,讲得还不错,东北口音,欧了没? 首先是一些基础概念. 1.JAVA的三种技术架构 企业版 J2EE 标准版 J2SE 小型版 J2 ...
 - react学习(7)——路由配置
		
1. 新建文件routes.js,分别定义页面的路由信息和其他信息 const Routes = { : { title: "home", pageName: "home ...
 - Android开发学习之路-使用annotationProcessor配置Butterknife
		
Apt工具的作者宣布了不再维护该工具了,而且Android Studio也有了自己的插件,并且可以通过gradle来简单的配置. 其实用Butterknife的都知道,没有apt,onClick绑定不 ...
 
随机推荐
- Reboot
			
目标是将浏览器的预设样式设为一致 Native font stack 本机字体堆栈 由于padding 及 border 会改变元素在运算后的宽度 此时的实际宽度为: width+左右padding ...
 - MATLAB解决常微分方程
			
首先得介绍一下,在matlab中解常微分方程有两种方法,一种是符号解法,另一种是数值解法.在本科阶段的微分数学题,基本上可以通过符号解法解决. 用matlab解决常微分问题的符号解法的关键命令是d ...
 - [hdu 1671] Phone List - Trie
			
Given a list of phone numbers, determine if it is consistent in the sense that no number is the pref ...
 - spring cloud微服务三:Eureka服务治理之注册服务提供者及服务的发现和消费
			
当服务注册中心成功建立以后,就需要有服务的注册和消费,否则这个服务注册中心就没有了存在的意义,而实际上,一个简单的服务注册也是非常简单的,仅仅需要实现四部曲就好. 首先,还是建立一个基本的spring ...
 - JDK动态代理和cglib代理
			
写一个简单的测试用例,Pig实现了Shout接口 public class MyInvocation implements InvocationHandler { Object k; public M ...
 - 洛谷P5058 [ZJOI2004]嗅探器
			
题目描述 某军搞信息对抗实战演习,红军成功地侵入了蓝军的内部网络,蓝军共有两个信息中心,红军计划在某台中间服务器上安装一个嗅探器,从而能够侦听到两个信息中心互相交换的所有信息,但是蓝军的网络相当的庞大 ...
 - Jmeter 自动化测试报告扩展(转 Todo 需要修正)
			
首先了解下生成测试报告的过程,我们看到的测试报告是由.jtl格式转换为.html,html报告的样式由extras目录下xsl文件决定.优化测试报告需要分为两部分内容,首先我们要优化输出的测试内容,其 ...
 - abp架构中加载公共css样式表和公共js的文件目录位置
			
src\shared\helpers\LocalizedResourcesHelper.ts
 - 02.Spring Ioc 容器 - 创建
			
基本概念 Spring IoC 容器负责 Bean 创建.以及其生命周期的管理等.想要使用 IoC容器的前提是创建该容器. 创建 Spring IoC 容器大致有两种: 在应用程序中创建. 在 WEB ...
 - 动态页面技术----JSP技术
			
1995年java诞生,没有jsp,只有Servlet, Servlet开发:Servlet上嵌套html代码,非常繁琐. 1998年,出现jsp,方便写html代码,并且可以在html代码中嵌套ja ...