Hatena::ブログ(Diary)

bojovs blog RSSフィード

2011-01-19

Railsのビューのrenderメソッドにはブロックが渡せるんですね

Railsで作っているウェブアプリの一部ページにサイドバーを載せたいなと思いました。それでいろいろ調べてたら、ビューのrenderメソッドにブロックが渡せることを知ったので、これを使うことにしました。

環境

書き方

まずサイドバーをあらわす_sidebar.html.hamlを用意します。

_sidebar.html.haml

%aside
  = yield

そしてサイドバーを呼び出したいビュー(ここではsomething.html.haml)を以下のように書きます。

something.html.haml

%article
  %h1 Tシャツ
= render :layout => 'sidebar' do
  %ul
    %li ハイテク
    %li NEO

something.html.hamlのページを開くとこんな感じのHTMLになります。

<article> 
  <h1>Tシャツ</h1> 
</article>
<aside> 
  <ul> 
    <li>ハイテク</li> 
    <li>NEO</li> 
  </ul> 
</aside> 

ソースコードを見る限り、ブロックを渡すときは:partialではなく:layoutでないといけないみたいです。

参考

Rails render partial with block - Stack Overflow

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/bojovs/20110119/1295409253
Connection: close