Я создаю приложение с 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 и некоторые другие вещи безуспешно. Есть ли способ отображать определенный контент внутри частичного выхода через yield? В настоящее время я использую Rails3
EDIT:
Я обнаружил, что именно хеш: collection делает невозможным вставку блока.
Оба этих фрагмента кода работают:
<%= render :layout => 'items/item' do %>
Hello world
<% end %>
<%= render :layout => 'items/item', :locals => {:item => current_user.items.first} do %>
Hello world
<% end %>
Это означает, что если я сделаю каждый. Я смогу выполнить то, что хочу, но это будет уродливый код. Кто-нибудь знает способ обойти это?