rails_mvc

一、路由
在routes.rb文件中,主要有5种类型的路由:
1、Default Routes(默认路由)
Match ‘ :controller(/:action(/:id(.:format)))’

2、RESTful Routes(资源路由)
可以使用资源标识符描述资源,以及系统组件之间的资源状态迁移。
提供了HTTP响应,控制器Action和数据库CRUD操作之间的映射

3、Named Routes(命名路由)
将默认match调用中的URL直接改为路由名称
在控制器的方法中直接应用命名路由,从而实现页面提交和重定向
match ‘welcome’, :to =>’users#index’, :as =>’welcome’

4、Nested Routes (嵌套路由)
5、Regular Routes (正则路由)


二、ActionController::Base类提供的6个对象
1、Sessions
赋值:session[:userName] = “somebody”
读取Session属性:#{session[:userName]}

2、Parameters
Parameters是一个Hash对象
params[:user][:name] 表示访问User类的name属性值

3、Requests
每个Request对象对应一次用户请求

4、Responses
每个Response对象对应于服务器对用户的响应

5、Renders:渲染模板

6、Redirects
redirect_to :action => ‘show’, :id => @entry.id


三、过滤器
过滤器类型:
1、Before过滤器
2、After过滤器
3、Around过滤器

定义方式:
1、方式引用方式
格式: Filter名:Filter方法名
例如:before_filter : charsetFilter

2、内部类方式
例如: class FilterClass
def self.filter(controller)
#这里是方法中的内容
end
end

3、过程对象式
把一个过程对象传递给Filter声明。
例如:before_filter{ |controller|
#这里是代码块中的内容
}


四、模板:
1、
模板是Rails视图层的组件
默认位置:app/views
2、
一般情况下模板文件的名称和Controller内各个Action的名称对应
但不对应时,需要在控制器中调用render方法指定模板文件,代码如下:
render :action => ‘reg’ #将与reg动作使用同一个模板
render :template => ‘users/reg’ #将调用users控制器中的reg动作作为模板
render ::file => ‘public/usersreg’ #将public/usersreg.html.erb文件作为模板
3、
Rails默认支持三种模板:
XML模板:使用Builder模块构造的XML格式响应
ERB模板:可以嵌入Ruby的,用于生成HTML的文件
RJS模板:用于生成JavaScript并在浏览器上执行的文件,通常用于Ajax
4、
按模板的作用范围来分:
全局模板:作用域最大,影响整个应用程序的布局。通常称为layout模板,位于app/views/layouts目录下
局部模板:名称必须以下划线“_”开头,可以在项目中多次重复使用,通常与普通模板位于同一目录下
普通模板:作用域最小,是使用最多的模板。通常位于app/views/控制器名称目录下

 

五、Rails特殊的MVC组件
1、Helpers
放置展现逻辑
可以在view或controller中使用
Rails本身内置了很多helper
使用容易

2、Partials
可重用代码片段(DRY)
为了用于多视图共享而设计

3、Layouts
页面布局使用
作用范围:全局、controller或action

posted @ 2016-08-18 16:46  Hsinwang  阅读(239)  评论(0编辑  收藏  举报