私はitem/_item.html.erbを持つレール上にrubyを使ってアプリケーションを作成しています。部分的にはyield文ですので、必要に応じて余分なコンテンツを追加できます。この場合、どのビューがpartialと呼ぶかに応じて、アイテムに特定のボタンを追加したいと思います。部分的なビア内のコンテンツをレンダリングする= 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
EDITを使用しています。
コードの仕事のこの部分の両方:
<%= render :layout => 'items/item' do %>
Hello world
<% end %>
<%= render :layout => 'items/item', :locals => {:item => current_user.items.first} do %>
Hello world
<% end %>
これは私が.eachを行う場合、私は私が欲しいものを達成できたが、それは醜いコードになることを意味しています。誰もがこれを回避する方法を知っていますか?
どうやってこれを働いていますか?私は上記の内部、およびレンダリングの周りにcontent_forコードを設定しようとしましたが、私はまだ部分的にレンダリングされているコンテンツを見ることができません。私もコレクションを使っているからですか? – roloenusa
_item.html.erbでは、yield <%content_forの代わりにcontent_forを使うことができます:foobar if content_for? :foobar%> ' – rajkamal
レンダリングの呼び出し方法の簡単な例を投げることはできますか? – roloenusa