`

rails render partial 参数 变量说明

阅读更多
这里的conventions总是容易记不清楚 就是locals collection object


1. 默认参数

<%= render :partial => "account" %>

默认本地有个变量@account, 传递过去,render到的partial(_account.erb)有个变量account

2. 单独参数 locals
locals传递一组hash参数hash 值是本地的变量,hash的key是partial里的变量

<%= render :partial => "account", :locals => { :account => @buyer } %>

<% for ad in @advertisements %>
  <%= render :partial => "ad", :locals => { :ad => ad } %>
<% end %> 

上面两个render分别
传递本地变量@buyer到_account.erb里叫account的参数
传递本地变量ad到_ad.erb里叫ad

3

根据1默认参数下面两个是一样的

<%= render :partial => "contract", :locals => { :contract  => @contract } %>

<%= render :partial => "contract" %>



4. as使用

用来改变传递之后,partial里变量的名称,如下,render方式是一样的。

<%= render :partial => "contract", :as => :agreement

<%= render :partial => "contract", :locals => { :agreement => @contract }

传递@contract到_contract.erb里,partial里的变量名为agreement

5. object使用

object最简单,就是把一个变量原名传递到partial里,
所以什么都记不清楚的时候,就用object多写点都能表达


如下:
<%= render :partial => "account", :object => @buyer %>

<% for ad in @advertisements %>
  <%= render :partial => "ad", :object => ad %>
<% end %>

传递@buyer到_account.erb的partial里变量名还是@buyer
传递ad到_ad.erb的partial里变量名还是ad

6 object和as合用

<%= render :partial => "contract", :object => @contract, :as => :contract %>

<%= render :partial => "contract" %>


7 collection

<%= render :partial => "ad", :collection => @advertisements %>


@advertisements是一个array,partial里_ad.erb有个ad变量是@advertisements的成员。就是_ad.erb不用写loop只是一条广告显示。

<%= render :partial => "ad", :collection => @advertisements, :spacer_template => "ad_divider" %>

同上,循环显示_ad.erb _ad_divider.erb 显示@advertisements.size次其中partial_ad_counter是默认计数器表示第几条广告

8 默认


看你要partial的变量是一组记录还是一条记录,会对应约定用locals和collection
#@account是一条记录
# <%= render :partial => "accounts/account", :locals => { :account => @account} %>
<%= render :partial => @account %>

# @posts是一组记录
# <%= render :partial => "posts/post", :collection => @posts %>
<%= render :partial => @posts %>

这是很人性的约定,可有时候就是忘了

9 一些漂亮的简写

#<%= render :partial => "account" %>可用下面代替
<%= render "account" %>

#<%= render :partial => "account", :locals => { :account => @buyer } %>可用下面代替
<%= render "account", :account => @buyer %>

# @account是一条记录
# <%= render :partial => "accounts/account", :locals => { :account => @account } %>可用下面代替
<%= render(@account) %>

# @posts是一组记录
# <%= render :partial => "posts/post", :collection => @posts %>可用下面代替
<%= render(@posts) %>


10 layout

<%# app/views/users/index.html.erb &>
Here's the administrator:
<%= render :partial => "user", :layout => "administrator", :locals => { :user => administrator } %>

Here's the editor:
<%= render :partial => "user", :layout => "editor", :locals => { :user => editor } %>

<%# app/views/users/_user.html.erb &>
Name: <%= user.name %>

<%# app/views/users/_administrator.html.erb &>
<div id="administrator">
  Budget: $<%= user.budget %>
  <%= yield %>
</div>

<%# app/views/users/_editor.html.erb &>
<div id="editor">
  Deadline: <%= user.deadline %>
  <%= yield %>
</div>



参考文档:
http://apidock.com/rails/ActionController/Base/render
http://johnnyhg.iteye.com/blog/499182
http://apidock.com/rails/ActionView/Helpers/UrlHelper/link_to
2
1
分享到:
评论

相关推荐

    Ruby的render_partial技术详解

    整理后的在Ruby on rails的Haml有关render_partial的用法,本资源为一张图

    11. Render 部分partial与使用上的实例

    [Ruby_on_Rails][中文][Rails_5.x]__11._Render_部分partial與使用上的實例

    rails:Render的Rails 5入门项目

    render partial: 'modals/modal_content', locals: { modal_data: @modal_data } end ``` ### 部署Rails 5.2项目 部署Rails 5.2应用程序通常涉及以下步骤: 1. **环境设置**:确保服务器满足Rails 5.2所需的Ruby...

    ruby1.8.6 + rails2.0.2 安装配置 详细说明

    同时,提供的`安装说明.xls`文件应该包含更详细的步骤和可能遇到的问题解决方案,确保您在整个过程中得到充分的指导。 最后,记住在开发过程中保持版本的一致性是非常重要的,因为不同版本的软件之间可能存在兼容性...

    Rails项目源代码

    Rails提供了许多安全特性,如CSRF(跨站请求伪造)保护、XSS(跨站脚本攻击)防御和参数过滤。开发者还需要遵循RESTful设计原则,合理使用过滤器,确保敏感信息的安全。 9. **部署与运维**: 项目部署通常选择...

    Ruby on Rails Guides v2 - Ruby on Rails 4.2.5

    ### Ruby on Rails Guides v2 - Ruby on Rails 4.2.5 #### 一、重要概念及基础假设 - **重要概念**:本指南旨在帮助读者深入理解Ruby on Rails(以下简称Rails)4.2.5版本的核心功能与最佳实践。 - **基础假设**:...

    rails2-sample

    从给定的文件信息来看,我们正在探讨的是一本关于Ruby on Rails的书籍,书名为《Simply Rails2》,作者是Patrick Lenz。本书旨在为初学者提供深入理解Ruby on Rails框架的指南,从基础概念到高级主题均有涵盖,是...

    使用Aptana+Rails开发Rails Web应用(中文)

    在开发Web应用时,Ruby on Rails(简称Rails)框架因其高效、简洁的代码风格和强大的社区支持而备受青睐。Aptana是一款强大的集成开发环境(IDE),尤其适用于Rails项目的开发,它提供了丰富的特性来提升开发效率。...

    rails_param:Rails的参数验证和类型强制

    rails_param Rails的参数验证和类型强制介绍如果您想直接在控制器内部验证一些参数,该库非常方便。 例如:您正在构建搜索动作,并且想要验证是否已设置sort参数,并且仅将其设置为desc或asc类的东西。重要的该库不...

    rails2.3.2gem本地安装包及使用说明

    以下是对 Rails 2.3.2 Gem 本地安装包及其使用说明的详细解读。 1. **Rails 2.3.2 版本特性** - Rails 2.3.2 在 2009 年发布,引入了许多增强功能,如 Active Record 的 Active Record::Observer,用于监听模型...

    Ruby for Rails

    所采用的Rails应用示例,既说明了Ruby的特性,也给出了有关Rails的重要信息。第四部分讲述了如何应用第二部分和第三部分的Ruby知识来开发Rails应用。 本书适合于Ruby的初学者,也适合于想要进一步提高Ruby编程...

    client_variable:在JavaScript中使用Rails变量

    将您的rails变量导出到客户端 安装 将此行添加到您的应用程序的Gemfile中: gem 'client_variable' 安装并将其添加到Gemfile后,需要运行生成器: rails g client_variable:install 它将在配置文件夹中创建client_...

    rails敏捷开发的购物车系统

    在本文中,我们将深入探讨如何使用Rails敏捷开发技术构建一个购物车系统,特别是在参考《rails敏捷开发第四版》中的示例。Rails 3.2.6是本文的基础框架,它是一个强大的Ruby Web应用程序框架,以其MVC(模型-视图-...

    ruby on rails api

    这个CHM文件可能涵盖了以上所有内容的详细说明,包括每个类、模块的方法、参数、返回值和示例用法。开发者可以通过搜索特定的API,了解其功能、用法和注意事项,从而提高开发效率和代码质量。对于Ruby on Rails初学...

    rails 2.3.2离线安装rails 2.3.2离线安装

    rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails ...

    [Rails] Crafting Rails Applications (英文版)

    ☆ 资源说明:☆ [Pragmatic Bookshelf] Crafting Rails Applications (英文版) [Pragmatic Bookshelf] Crafting Rails Applications Expert Practices for Everyday Rails Development (E-Book) ☆ 图书概要:☆...

    rails学习教程

    Rails提供了许多安全特性,如CSRF防护、XSS防护和参数过滤。了解这些安全措施并合理使用,可以防止常见的Web攻击。 十、部署Rails应用 学习如何将Rails应用部署到生产环境,如Heroku或AWS,是开发过程中必不可少的...

    Ruby on Rails入门权威经典

    此外,书中还会探讨如何利用Rails的强大力量,如局部变量、实例变量和实例方法来传递数据给视图。 控制器(Controller)是连接模型和视图的桥梁,负责处理HTTP请求和响应。书中会讲解如何定义动作、处理参数、...

    Rails入门教程一(翻译).pdf

    《Rails入门教程一》是针对初学者的一份详尽指南,旨在帮助读者快速掌握Ruby on Rails框架的基础知识。Ruby on Rails(简称Rails)是一个基于Ruby语言的开源Web应用框架,遵循MVC(Model-View-Controller)架构模式...

Global site tag (gtag.js) - Google Analytics