`
Anleb
  • 浏览: 31983 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

rails render :partial使用

阅读更多
render :partial 可以实现代码重用,尤其是在view层设计的例子

1.index.html
<h1>My Blog</h1>
<% @posts.each do |post| %>
<div id="post">
<h2><%= link_to_unless_current post.title,post %></h2>	
	<%= simple_format post.content %>
</div>
    <%= link_to 'Edit', edit_post_path(post) %>
    <%= link_to 'Destroy', post, confirm: 'Are you sure?', method: :delete %>
<% end %>
<br />
<%= link_to 'New Post', new_post_path %>


2.show.html
<div id="post">
<h2><%= link_to_unless_current @post.title,@post %></h2>	
<%= simple_format @post.content %>
</div>
<%= link_to 'Edit', edit_post_path(@post) %>
<%= link_to 'Destroy', @post, confirm: 'Are you sure?', method: :delete %>


显然2段代码有重复,可以利用 render :partial 实现代码复用

如下:
1.新建一个_post.html.erb文件,复制代码:
<div id="post">
<h2><%= link_to_unless_current post.title,post %></h2>	
	<%= simple_format post.content %>
</div>
    <%= link_to 'Edit', edit_post_path(post) %>
    <%= link_to 'Destroy', post, confirm: 'Are you sure?', method: :delete %>
<% end %>


2.修改后Index.html
<h1>My Blog</h1>
<% @posts.each do |post| %>
<%= render :partial => post }%>
<% end %>
<br />
<%= link_to 'New Post', new_post_path %>

3.修改后show.html
<%= render :partial => @post %>



上面是常规做法,render :partial 会去view文件夹找_post.html.erb文件,然后把参数传进去。


但是如果_post.html.erb文件名和我传进去的参数名 不一致怎么办?

修改_post.html.erb文件名为_newPost.html.erb
index.html代码修改如下:
<%= render :partial => "newPost", :locals => { :post => @post }

show.html代码修改如下:
<%= render :partial => "newPost", :locals => { :post => post }


newPost就是 _newPost.html.erb
:post就是 _newPost.html.erb的变量名
后面的值就是你需要传进去的变量

参考:http://qing.weibo.com/1848718461/6e31347d330009t5.html
分享到:
评论

相关推荐

    Ruby的render_partial技术详解

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

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

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

    stripe-rails:用于与Stripe集成的Rails引擎

    = render :partial =&gt; 'stripe/js' %&gt; 在这两种情况下,stripe-rails都会选择适合您的开发环境的stripe.js版本,并自动对其进行配置以使用您的可发布API密钥。 默认情况下,它在您的development环境中使用stripe-...

    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...

    rails有用的命令

    - `render :partial =&gt; "cart_item", :collection =&gt; @cart.items`:在视图中渲染局部模板“cart_item”,遍历并显示@cart.items中的每一项。 13. **Rails新命令**: - `$ rails new my_project`:创建名为my_...

    r_mark:在 Rails 视图或部分渲染 Markdown

    马克 RMark 规定 Rails 应用程序在视图和部分中使用 Markdown。安装将此行添加到应用程序的 Gemfile 中: gem 'r_mark' 然后执行: $ bundle而且还应该安装降价解析器,比如, ,或只要你喜欢。用法所有需要做的就是...

    final-project

    在IT行业中,尤其是在Web...通过使用`render :partial`,开发者可以提高代码复用性和可维护性,而JavaScript则为用户提供了丰富的交互体验。在实际项目中,理解并熟练运用这些技术对于构建高质量的Web应用至关重要。

    jb:用于Ruby on Rails的简单快速的JSON API模板引擎

    带:collection选项的render_partial实际上会渲染集合(与Jbuilder不同) 句法 .jb模板应包含Ruby代码,该代码将返回任何to_json (通常为Hash或Array)的Ruby对象。 然后,返回值将to_json修改为JSON字符串。 例子 ...

    contents_core:简单的结构以灵活的方式管理内容

    目录核心 一个Rails gem,它提供了一种以灵活的方式管理内容的结构:具有递归嵌套块的块+作为“叶”的项目 ... (可选)将块添加到视图中(例如页面显示): = render partial: 'contents_core/blocks', locals: { co

    SitePoint-PublicActivity:SitePoint 上的 Activity Feeds with Rails 文章的源代码

    在主视图中,你可以通过`render :partial =&gt; 'activities', :collection =&gt; PublicActivity::Activity.all`来显示所有活动。 除了基本功能,PublicActivity还支持过滤、分页和自定义存储机制(如ActiveRecord、...

    Rails 中页面中常用函数

    例如,`&lt;%= render 'shared/item' %&gt;`将渲染`shared/_item.html.erb` partial。 3. **`link_to`**:创建HTML链接。如`查看', item_path(item) %&gt;`, 这将生成一个链接到特定商品详情页的超链接。 4. **`form_for`**...

    kumquat:Kumquat是用于渲染RMarkdown文件的Rails引擎

    您可以使用Kumquat将R输出整数化为Rails,这对于在电子邮件报告工具中使用ggplot2库很有用。 例子 例如,考虑对partial的典型render调用: render '_a_knitr_report' 这部分是_a_knitr_report.Rmd ,它是存储在您...

    液体导轨:渲染具有布局和部分支持的液体模板

    液体轨道 它允许您使用布局和部分支持来呈现.liquid模板。 它还提供了要在液体模板中使用的过滤器,标签,滴剂类。 安装 将此行添加到您的应用程序的Gemfile中:...# It will render app/views/home/_partial.liquid wh

Global site tag (gtag.js) - Google Analytics