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 on rails的Haml有关render_partial的用法,本资源为一张图
[Ruby_on_Rails][中文][Rails_5.x]__11._Render_部分partial與使用上的實例
= render :partial => 'stripe/js' %> 在这两种情况下,stripe-rails都会选择适合您的开发环境的stripe.js版本,并自动对其进行配置以使用您的可发布API密钥。 默认情况下,它在您的development环境中使用stripe-...
render partial: 'modals/modal_content', locals: { modal_data: @modal_data } end ``` ### 部署Rails 5.2项目 部署Rails 5.2应用程序通常涉及以下步骤: 1. **环境设置**:确保服务器满足Rails 5.2所需的Ruby...
- `render :partial => "cart_item", :collection => @cart.items`:在视图中渲染局部模板“cart_item”,遍历并显示@cart.items中的每一项。 13. **Rails新命令**: - `$ rails new my_project`:创建名为my_...
马克 RMark 规定 Rails 应用程序在视图和部分中使用 Markdown。安装将此行添加到应用程序的 Gemfile 中: gem 'r_mark' 然后执行: $ bundle而且还应该安装降价解析器,比如, ,或只要你喜欢。用法所有需要做的就是...
在IT行业中,尤其是在Web...通过使用`render :partial`,开发者可以提高代码复用性和可维护性,而JavaScript则为用户提供了丰富的交互体验。在实际项目中,理解并熟练运用这些技术对于构建高质量的Web应用至关重要。
带:collection选项的render_partial实际上会渲染集合(与Jbuilder不同) 句法 .jb模板应包含Ruby代码,该代码将返回任何to_json (通常为Hash或Array)的Ruby对象。 然后,返回值将to_json修改为JSON字符串。 例子 ...
目录核心 一个Rails gem,它提供了一种以灵活的方式管理内容的结构:具有递归嵌套块的块+作为“叶”的项目 ... (可选)将块添加到视图中(例如页面显示): = render partial: 'contents_core/blocks', locals: { co
在主视图中,你可以通过`render :partial => 'activities', :collection => PublicActivity::Activity.all`来显示所有活动。 除了基本功能,PublicActivity还支持过滤、分页和自定义存储机制(如ActiveRecord、...
例如,`<%= render 'shared/item' %>`将渲染`shared/_item.html.erb` partial。 3. **`link_to`**:创建HTML链接。如`查看', item_path(item) %>`, 这将生成一个链接到特定商品详情页的超链接。 4. **`form_for`**...
您可以使用Kumquat将R输出整数化为Rails,这对于在电子邮件报告工具中使用ggplot2库很有用。 例子 例如,考虑对partial的典型render调用: render '_a_knitr_report' 这部分是_a_knitr_report.Rmd ,它是存储在您...
- 通过render:partial返回部分视图信息,例如若登录名已存在则只返回验证结果。 - 假设其他平台(如Java平台的Servlet)也可以使用相似的方式返回数据。 4. 跨浏览器兼容性: 提到了表单验证实现代码兼容的...
液体轨道 它允许您使用布局和部分支持来呈现.liquid模板。 它还提供了要在液体模板中使用的过滤器,标签,滴剂类。 安装 将此行添加到您的应用程序的Gemfile中:...# It will render app/views/home/_partial.liquid wh
使用Partial模版与布局来减少重复的代码 在Rails项目中,经常会遇到需要多次复用的代码片段,例如导航栏、页脚等。此时,利用Partial模版可以帮助减少代码重复,提高代码的重用性。同时,合理使用布局(layouts)...