`
fireDragonpzy
  • 浏览: 454323 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论
阅读更多
模板是个文件,它定义一个应答的内容。Rails 支持两种格式的模板:rhtm,它是包含有
Ruby 代码和构建器的HTML,更多地用于程序方式。
习惯上,app/views/control/action.rhtml 或者app/vies/controller/action.rxml 文件内的模板用于“控制器”控制“动作”。app/views 缺省是名字的部分。它可以被覆写,通过设置
ActionController::Base.template_root =dir_path

render()方法是所有Rails 内提交操作的心脏。它接受一个选项哈希表来告诉它提交什
么,以及如何提交它。让我们看看使用在“控制器”内的render 选项。
1、render(:text =>string) 发送给定字符串给客户端。不完成模板解释或者HTML 转义
工作。
class HappyController < ApplicationController 
def index 
render(:text => "Hello there!")或render :text=>'hello,threr!' 
end 
end 


2、render(:inline =>string, [:locals=>hash_pair],[ :type =>"rhtml"|"rxml"] )
根据string动态生成模板并显示数据,其中has_pair指以哈希表键值对形式的数值。
例!
def test_inline 
   render :inline=>"<%='hello'+word%>",:locals=>{:word=>"World"},:type=>"rhtml" 
end 


3、render(:action =>action_name)调用“控制器”内的给定动作提交执行结果。有时候有人会在应该使用redirect 的地方错误地使用render()的:action
def display_cart 
if @cart.empty? 
render(:action => :index) 
else 
# ... 
end 
end 


4、render(:file =>path, [ :use_full_path =>true|false] ) 提交给定路径(它必须包含在一个外部文件中)的模板。缺省地这应该是个给模板的绝对路径,但是如果:use_full_path 选项为true,只需要在path中指定相对路径即可,(相对于基本路径。模板的基本路径可设置在你的应用程序配置中)

5、render(:template =>name) 提交模板并重新排列要发送回客户端的结果文本。
:template 值必须包含“控制器”和“动作”的新名字这两个部分,并且用前向的反斜
线分开。下面代码将提交app/views/blog/short_list 模板。
class BlogController < ApplicationController 
def index 
render(:template => "blog/short_list", :locals => {:name => "firedragon"}) 
end 
end 


6、render(:partial =>name, ...) 提交一个局部模板。

7、render(:nothing => true) 不提交任何东西—发送一个空体给浏览器。

8、render() 带有未经覆写的参数,render()方法提交缺省模板给当前“控制器”和“动
作”。下面代码将提交app/views/blog/index 模板。
class BlogController < ApplicationController 
def index 
render 
end 
end 


(如果没有动作,则“控制器”的缺省动作(index)会被调用)。
class BlogController < ApplicationController 
def index 
end 
end 


(如果没有定义“动作”方法,则“控制器”将直接调用模板)。
class BlogController < ApplicationController 
end 


render 的所有格式接受可选的:status 和:layout 参数。

:status 参数用于设置HTTP 应答内的header 状态。它缺省为”200 OK”。不要使用带有3xxx 状态的render()来重定向;Rails有个redirect()方法用于这个目的。

:layout 参数确定提交中的结果是否被包装成一个layout。如果参数是:false,则没有layout 被应用。如果设置为nil 或true。
则有个layout 将被应用,只要有个相关的当前“动作”。如果:layout 参数有字符串值,它在提交时将接受layout 的名字来使用。当:nothing 选项有效时,layout 将不会被应用。


http://www.cnblogs.com/lwm-1988/archive/2011/08/29/2158941.html
分享到:
评论

相关推荐

    jquery-jsrender.js

    在提供的文件列表中,`jsrender.js` 应该是 JSRender 的核心库,而 `jquery-jsrender.js` 是将其功能整合到 jQuery 中的扩展插件。使用这个插件,开发者可以直接通过 jQuery 对象调用 `$.render` 或 `$.templates` ...

    RF_URP/RenderFeature_

    在Unity引擎中,Universal Render Pipeline (URP) 是一套高度可定制的渲染系统,它允许开发者根据项目需求调整和优化渲染流程。RF_URP/RenderFeature_ 的标题表明我们关注的是与URP中的RenderFeature相关的C#源代码...

    JsRender.zip(jsrender.js和jsrender.min.js合集)

    **JsRender 概述** JsRender 是一个轻量级但功能强大的JavaScript模板引擎,由Microsoft的前员工 Boris Moore开发。这个库旨在提供一种简洁、高效的方式来动态渲染HTML内容,尤其适用于构建用户界面和数据绑定。Js...

    cpp-RenderDoc是一个独立的图形调试工具

    RenderDoc是一款强大的开源图形调试工具,专为游戏开发者、图形工程师和研究人员设计,用于调试和优化3D渲染程序。它的核心功能是通过帧捕获技术,记录并分析GPU执行的每一帧,帮助开发者深入理解图形流水线的工作...

    将角色的Animator或Animation去掉,将SkinnedMeshRender更换为一般的Mesh Render,只使用

    一键将角色的Animator或Animation去掉,将SkinnedMeshRender更换为一般的Mesh Render,完成将动画效果的实现从CPU转移到GPU运算的目的,来利用GPU Instancing技术减少Draw Call。 • Convert assets quickly and ...

    vue props传入render函数,实现动态组件嵌套

    在Vue.js框架中,`props`是父组件向子组件传递数据的一种机制,而`render`函数则是Vue中用于自定义渲染逻辑的关键工具。本文将深入探讨如何利用`props`和`render`函数来实现组件之间的动态嵌套,从而提高应用的灵活...

    RenderDoc 1.19 64位 Windows下载

    为您列举一些renderDoc方面的下载的内容,renderdoc教程、render doc安装、renderdoc plugin等资源。把最新最全的renderDoc推荐给您,让您轻松找到相关应用信息,并提供renderDoc下载等功能。本站致力于为用户提供更好...

    JsRender 的使用demo

    **JsRender 概述** JsRender 是一个轻量级但功能强大的JavaScript模板引擎,由Microsoft的Dean Edwards开发,用于在客户端进行数据绑定和渲染。它提供了简洁、易于学习的语法,使得开发者能够快速地将静态HTML模板...

    WPF渲染Render范例C#代码

    在这个“WPF渲染Render范例C#代码”中,我们将探讨如何通过C#代码控制WPF的渲染过程。 首先,渲染过程在WPF中是由`Visual`类及其子类驱动的,它们负责描述UI元素的几何形状、颜色和透明度等特性。每个WPF控件都是一...

    jsrender.js

    **JSRender:强大的JavaScript模板引擎** JSRender是一个轻量级但功能强大的JavaScript模板引擎,它由Microsoft的MVC团队成员Boris Moore开发。这个库旨在提供一个简洁、高效的模板解决方案,用于生成动态HTML和XML...

    Android5.0中hwui中RenderThread工作流程.docx

    "Android 5.0 中 hwui 中 RenderThread 工作流程" Android 5.0 中 hwui 中的 RenderThread 工作流程是 Android 系统中一个非常重要的组件,负责渲染和绘制应用程序的界面。在这个过程中,RenderThread plays a ...

    解决render-notebook图片不显示.docx

    ### 解决Render-Notebook图片不显示的问题 在进行数据科学项目或开发过程中,经常会用到Jupyter Notebook来编写和运行代码。然而,在使用过程中可能会遇到一个常见的问题:即Notebook中的图片无法正常显示。本文将...

    render标签的使用

    在本文中,我们将详细探讨`render`属性在RichFaces 4中的使用,特别是如何利用它来更新页面上的特定区域。 `render`属性通常用于AJAX(异步JavaScript和XML)操作,它允许我们在用户与页面交互时,只更新页面的某些...

    blender+mapsModelImporter+renderDoc.zip

    《Blender、MapsModelsImporter与RenderDoc:三维创作与渲染工具的协同应用》 在数字艺术创作领域,Blender、MapsModelsImporter和RenderDoc是三款极具影响力的工具,它们分别在建模、导入地图模型以及渲染分析方面...

    SketchUp插件-室内建筑渲染器插件 Thea Render v3.5.173.1970 + v2.2.1016.1877

    Thea Render是一种基于物理的高质量全局照明渲染器。它是一种独特的渲染器,能够在有偏真实感、无偏和GPU模式下使用最先进的技术进行渲染。在Thea Render中,我们使用最精确的物理模型创建了大量高度真实的材质。...

    layui将table转化表单显示的方法(即table.render转为表单展示)

    table.render({ id : 'table', type:'post', elem : '#table', url : url, where : {'Id' : $data.Id}, page:false, cols : [ [ //表头 ]] }) 最简单直接用ajax请求,确保url路径正确 $.ajax({ dataType:'...

    一个渲染框架render frame

    渲染框架Render Frame是一个专用于图形图像处理的软件开发工具,其核心目标是为开发者提供一套高效、灵活且可扩展的机制来创建和管理渲染过程。在计算机图形学领域,渲染是将几何数据、光照信息、纹理等转换为二维...

    OctaneRender渲染器4.0XB1独立版官方免费授权版

    OctaneRender 4渲染器是世界上第一个GPU-accelerated最快、无偏差、物理渲染器。这意味着Octane使用你的电脑的显卡来渲染真实感图像,而且超级快速。Octane的并行计算能力,您可以创建令人惊叹的效果。OctaneRender 4...

    Octane Render for C4D 进阶教程

    Octane Render for C4D是一款常用于Cinema 4D的高质量渲染器,它以物理准确性、交互性和灵活性著称。接下来将详细探讨标题和描述中提到的知识点。 1. OC节点材质讲解:OC渲染器具有节点式材质编辑器,允许用户通过...

    vue中render函数的使用详解

    render函数 vue通过 template 来创建你的 HTML。但是,在特殊情况下,这种写死的模式无法满足需求,必须需要js的编程能力。此时,需要用render来创建HTML。 render方法的实质就是生成template模板; 通过调用一...

Global site tag (gtag.js) - Google Analytics