【Rails入門】yieldとcontent_forを使ってページ毎にタイトルを変更オオイシ2018/10/112018/10/11こんにちは!システムエンジニアのオオイシです。Railsのviewレイアウトは、1画面を表示するときに共通レイアウトと個別レイアウトで役割を分割して処理しています。【応用】実践的な使い方を紹介について解説していきます。まとめyieldとはそもそも、yieldメソッドとは、共通プログラムと個別プログラムで分割してコーディングするために使用するRubyのメソッドです。yieldメソッドの動きを確認できるサンプルプログラムを見てみましょう。共通このように、yieldの動きを確かめることができました。Railsではこのyieldを使って共通のレイアウトと個別レイアウトを分割して柔軟に処理できるようにしています。詳しくは、次項で解説していきます。Rubyのyieldについてこちらで詳しく解説しているので、ぜひ参考にしてみてください。BODYタグ内の個別レイアウトで、役割分担して画面表示しているからです。その分割するための機能としてyieldメソッドを使っています。application.html.erbはどのようになっているか確認してみましょう。</body></html>bodyタグの中にyieldメソッドが定義されているのが確認いただけたと思います。実は、このyieldは複数を定義して任意の場所で定義することも可能です。次項で詳しく説明していきます。yieldとcontent_forの使い方Railsでyieldセット使われるのがcontent_forメソッドです。content_forとは、個別レイアウトから共通レイアウトに画面表示するために使います。Railsのtitleタグを個別のレイアウトから指示する場合です。content_for使い方は次の通りです。%>次項では、サンプルプログラムを使って解説していきます!実践的な使い方を紹介サンプルコントローラーの作成サンプルプログラムを確認するためのコントローラーを作成します。初期ではこのように表示されます。タイトルにはSample"と表示されている点について注目してください。アクション毎にタイトルを変更yieldとcontent_forを使って、個別のレイアウトからHTMLのtitleを表示するサンプルプログラムを確認してみましょう。app/views/hello/world.html.erb</p>実行結果:このようにタイトルを個別に変更することが出来ました。デフォルトのtitleを表示する場合は、content_for?メソッドを使って条件分岐することも出来ます。”Sample"%></title>ページトップにお知らせを表示ページトップに共通のレイアウトにお知らせ表示したい場合もあるでしょう。名前付きのyieldを定義してお知らせを表示するサンプルプログラムを確認してみましょう。〜〜</body>お知らせを装飾するためのCSSを定義します。#000000;}お知らせを表示したい内容をコーディングします。app/views/hello/world.html.erb</p>実行結果:このように、お知らせを表示することが出来ました。まとめいかがでしたか?今回はRailsのyieldメソッドについて解説しました。yieldメソッドは、共通プログラムと個別プログラムで分割してコーディングするために使用するRubyのメソッドです。Railsではyieldメソッドを使って、共通レイアウトと個別のレイアウトを分割するために使っています。content_forを使うと、共通レイアウトに指定した場所でアクション毎の個別レイアウトが可能になるので、ぜひ活用してみてください。railsのyieldを忘れてしまったらこの記事を確認してくださいね!TweetPocket無料でSEからWebエンジニアへ転職しませんか?侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、システムエンジニアという職業だけどコードが書けない事務作業が多くスキルがないため将来が不安スクールに通うと完全未経験者と同じスタートになるからレベルが合わないという、すでに知識があるSEならではのお悩みがあることに気づきました。弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。こちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。プログラミング、システムアーキテクトからマネジメントに到るまでなんでも食べます。