Railsでlayoutのyieldって複数書けないの?
元の質問は、layoutで、
<html> <head> <%= yield %> </html>
とかしていいの?という質問でしたが、「あー、きっとが毎回違うんだな」と予想したのでタイトルの質問として回答しました。
元質問の答えとしては、「できる」ですが、閉じ忘れたら大変よろしくないので、yieldを複数書ける方法を知らせました。
具体的には、layoutの方で
<html> <head> <title>My Website</title> <%= yield :script %> </head> <body> <%= yield %> </body> </html>
として、
個別のViewの方で content_for を使います。
<% content_for :script do %> <!-- このブロックの中が上記 yield :script に挿入される。 --> <script type="text/javascript"> ... </script> <% end %> <!-- content_for ブロック以外が yield に挿入される。 --> ... メインのHTML ...
となります。
詳しくは、content_forのヘルプをご覧ください。
※ twitterでRailsの無償サポートやってます。また、実行して確かめないので無保証です。ご注意ください。