`
jbf034
  • 浏览: 153163 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

应答1-提交模板(render)方法

阅读更多
模板是个文件,它定义一个应答的内容。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")
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 将不会被应用。
分享到:
评论

相关推荐

    前端开源库-react-addons-pure-render-mixin

    1. 导入PureRenderMixin:首先需要从`react-addons-pure-render-mixin`模块中导入这个混合物。 ```jsx var PureRenderMixin = require('react-addons-pure-render-mixin'); ``` 2. 应用到组件:将PureRenderMixin...

    Android-react-native-render-html.zip

    Android-react-native-render-html.zip,ios/android纯javascript react本机组件,将html呈现为100%本机视图,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上构建...

    react-schema-render:react-schema-render是一个通用型schema转React组件的工具组件

    快速入门第1步:安装yarn add react-schema-render # npm install react-schema-render -S第2步:建立组件映射关系我们以ant-design的作为示例(只是为了好看,其和具体的UI库无关)。 # yarn add antd import { ...

    前端开源库-react-isomorphic-render

    **React Isomorphic Render** 在现代Web开发中,前端性能优化是一个关键点,而React Isomorphic Render(也称为服务器端渲染或SSR)是提升用户体验的一种重要技术。它允许应用程序的部分或全部在服务器上预先渲染为...

    前端开源库-pure-render-decorator

    `pure-render-decorator`是一个非常有用的开源库,它专门设计用于提升React组件的性能,通过确保只在必要时进行渲染,从而降低不必要的DOM操作。这个库的核心理念是实现“纯渲染”,也就是当组件的props或state没有...

    react-native-render-html:iOSAndroid纯javascript react-native组件,可将HTML呈现为100%的本机视图

    react-native-render-html 基于( 的原始作品,为他提供了道具。 一个iOS / Android纯javascript react-native组件,可将您HTML呈现为100%本机视图。 它具有极高的可定制性和易用性,旨在能够渲染您扔给它的任何...

    react-server-render, 响应服务器端渲染演示.zip

    react-server-render, 响应服务器端渲染演示 服务器端呈现 [DEMO ]服务器端渲染演示使用反应博客文章http://crypt.codemancers.com/posts/2016-09-16 -react-server-side-rendering/使用响应路由器 v

    前端开源库-react-transform-render-visualizer

    1. 安装:首先需要安装`react-transform-render-visualizer` 库,可以通过npm或yarn进行安装。 2. 配置:然后在项目的Webpack配置或者Babel配置中添加必要的transform规则。 3. 引入:在React组件中,不需要额外的...

    前端开源库-mithril-node-render

    文件名 "mithril-node-render-master" 暗示这是项目的主分支或源码仓库。通常,开源项目会将GitHub上的master分支下载后命名为这样的格式,包含了项目的名称和分支名。这可能包含项目的源代码、示例、文档等资源。 ...

    前端开源库-v-render

    1. **轻量级**:`v-render`设计简洁,减少了不必要的复杂性,让开发者更专注于业务逻辑。 2. **高效渲染**:优化的渲染机制确保了页面加载速度和用户体验。 3. **强类型支持**:可能提供TypeScript支持,增强了代码...

    vue-form-render:基于Vue 3.x,使用JSON模式快速生成自定义表单配置界面

    例子安装npm i vue3-form-render --save vue3 form render依赖于从item.so进行渲染,因此在使用vue3 form render我们需要安装Ant Design of Vue并将其导入到我们的项目中: import { createApp } from 'vue'import ...

    前端开源库-brisky-render

    1. **快速渲染**:brisky-render的核心在于它的快速渲染算法,能够在短时间内更新大量组件,确保用户界面的流畅性。 2. **轻量级**:相比于一些大型前端框架,brisky-render的体积更小,引入成本更低,适合小型项目...

    chrome-headless-render-pdf

    chrome-headless-render-pdf [OPTIONS] --url=URL --pdf=OUTPUT-FILE [--url=URL2 --pdf=OUTPUT-FILE2] ... Options: --help this screen --url url to load, for local files use: file:///path/to/file --pdf...

    koa-views-render:用于Koa和Lad的简单渲染(页面,本地)中间件(使用koa-views)

    koa-views-render 用于和简单render(page, locals)中间件(使用 )。目录安装 : npm install koa-views-render : yarn add koa-views-render用法这是一个简单的中间件,只需传递给ctx.render您提供的page和locals...

    Laravel开发-laravel-pagerender

    在视图层,laravel-pagerender通常会提供一个 Blade 模板标签,例如`@pagerender`,这样你就可以在模板文件中直接调用,插入生成的页面树。这样做的好处是,业务逻辑和视图分离,使得代码更易于维护和扩展。 总的来...

    Konq-Emb 的Render 部分的实现流程

    之后,`RenderRoot::close` 方法会被调用来遍历整个 Render 树,并设置所有的 Render 节点的 `m_parsing` 成员变量为 `false`,最后调用 `KHTMLView::layout` 来在浏览器中呈现整个文档。整体流程如图所示: ``` ...

    ElementUI-Table-column_render-header:ElementUI中Table-column的render-header运用和Table的整列拖动

    ElementUI-Table-column_render-header ElementUI的Table表格,官方网站上提供了很多样式,但是在日常开发中还会碰到各种情况,显然官方提供的是不能满足需求的。那么,我们就根据自己的需求对table进行改造。 先丢...

    Ajax-Rails-4-AJAX-modal-form-render-JS-response-as-table-row.zip

    Ajax-Rails-4-AJAX-modal-form-render-JS-response-as-table-row.zip,rails 4 ajax模式表单将js响应呈现为表行,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于...

    webpack-react-redux-server-side-render-example, 带有服务器端呈现的示例 React/Redux/Webpack 项目.zip

    webpack-react-redux-server-side-render-example, 带有服务器端呈现的示例 React/Redux/Webpack 项目 这里示例项目演示了一个反应/redux应用程序,其中带有与 web service绑定的可选服务器端呈现。功能反作用力...

    JQuery模板 :(六)JsViews - 基于JsRender并具有动态绑定功能的模板

    JsRender 是一个轻量级的模板引擎,它允许开发者通过声明式模板语法来渲染数据。模板中的表达式和控制结构可以灵活地嵌入HTML中,使得静态HTML文档能够动态响应数据变化。 **2. JsViews的引入** 在项目中引入...

Global site tag (gtag.js) - Google Analytics