如何在rails 4.1中从另一个视图文件夹中呈现_form

时间:2014-08-20 05:42:57

标签: ruby-on-rails

购物车/ _form

 <% for item in @cart.line_items %>             
 <%= item.quantity %> &times;<%= item.menu.menu_item_name %>
 <%= item.quantity*item.menu.price%>    
 <% end %>
菜单/索引中的

 <%= render partial: 'carts/form'%>

我想在_form页面上显示index

2 个答案:

答案 0 :(得分:2)

部分内容的关键是将它们作为可以在应用中的任何位置使用的代码块。除非我误解了您的问题,否则我建议您创建以下目录结构:

app
|-views
   |-cart(or wherever your form currently is)
   |-partials
      |-_partialYouWantToUse.html.erb

这样你可以使用

渲染它
<%= render "partials/partialYouWantToUse" %>

您在应用中想要的任何内容。

请注意,渲染局部时不使用下划线_,只能用一个保存。

评论的结果是

修改

您可以从任何文件夹渲染部分文件,只要它相对于视图文件夹即可。 所以:     &lt;%= render“WhateverFolder / evenAnotherFolder / _whateverpartial”%&gt;

只要无论是什么角色都是观点的直接后果。

部分或布局文件夹是一种rails约定,对于查看代码的人有帮助。它使事情井井有条。

答案 1 :(得分:0)

carts/_form.html.erb中:

 <% for item in @cart.line_items %>             
 <%= item.quantity %> &times;<%= item.menu.menu_item_name %>
 <%= item.quantity*item.menu.price%>    
 <% end %>

_form.html.erb中的任何其他*.html.erb放置行中使用

<%= render "carts/form" %>

在购物车目录内的*.html.erb文档中,您可以编写简单的内容:

<%= render "form" %>

因为它正在当前目录中寻找_form.html.erb