【发布时间】:2011-11-03 06:14:25
【问题描述】:
我正在使用 ruby on rails 创建一个应用程序,其中有一个 items/_item.html.erb。部分内部是一个 yield 语句,因此我可以根据需要添加额外的内容。在这种情况下,我想根据视图调用的部分向项目添加特定按钮。
这是我尝试过的,它渲染了部分,但它不渲染块:
_item.html.erb
<%= yield if block_given? %>
<div>
<%= item.name %>
</div>
someview.html.erb
...
<% render(:partial => 'items/item', :collection => current_user.items do %>
<%= "HELLO" %>
<% end %>
...
我也尝试过使用 content_for 和其他一些东西,但没有成功。有没有办法能够通过产量在部分内容中呈现特定内容?我目前正在使用 Rails3
编辑:
我发现是 :collection 散列导致无法插入块。
这两条代码都可以工作:
<%= render :layout => 'items/item' do %>
Hello world
<% end %>
<%= render :layout => 'items/item', :locals => {:item => current_user.items.first} do %>
Hello world
<% end %>
这意味着如果我做一个 .each 我可以完成我想要的,但这将是丑陋的代码。有谁知道解决这个问题的方法吗?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 partials