zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    HTML5(3) 拖放(Drag 和 Drop)
    HTML5(2) 画布Canvas
    HTML5(1) 介绍
    C#(99):System.IO.Path文件路径类
    SQL Server(00):逻辑函数
    SQL Server(00):删除表中的重复数据
    DevExpress03、XtraGrid(1)基本应用
    DevExpress11、TreeList
    DevExpress10、RichEditControl
    XtraEditors五、SpinEdit、TimeEdit
  • 原文地址:https://www.cnblogs.com/stellar/p/5784510.html
Copyright © 2011-2022 走看看