Sto creando un'applicazione con ruby su rails dove ho elementi/_item.html.erb. All'interno del partial è una dichiarazione di rendimento in modo da poter aggiungere contenuti extra, se necessario. In questo caso, desidero aggiungere un pulsante specifico all'elemento a seconda di quale vista viene chiamata parziale.Rendering contenuto all'interno di un parziale tramite = yield
Questo è quello che ho provato e rende il parziale, ma non rende il blocco:
_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 %>
...
Ho anche provato a usare content_for e altre cose senza successo. C'è un modo per essere in grado di rendere il contenuto specifico all'interno di un rendimento parziale? Attualmente sto usando Rails3
EDIT:
ho scoperto che è il: collezione hash che rende impossibile inserto del blocco.
Entrambi questi pezzi di lavoro Codice:
<%= render :layout => 'items/item' do %>
Hello world
<% end %>
<%= render :layout => 'items/item', :locals => {:item => current_user.items.first} do %>
Hello world
<% end %>
Ciò significa che se faccio un .each ho potuto realizzare quello che voglio ma sarebbe brutto codice. Qualcuno conosce un modo per aggirare questo?
Come stai lavorando questo fuori? Ho provato a impostare il codice content_for all'interno di sopra, sotto e intorno al rendering e non riesco ancora a vedere il contenuto da renderizzare con il partial. È perché sto usando anche una collezione? – roloenusa
In _item.html.erb possiamo usare content_for invece di yield '<% content_for: foobar if content_for? : foobar%> ' – rajkamal
Esiste la possibilità di lanciare un rapido esempio di come dovrebbe apparire la chiamata di rendering? – roloenusa