平凡エンジニアによる平凡ブログ

平凡インフラエンジニアがスキルアップを目指してプログラミングやクラウドやサーバといったインフラのアウトプットをしていきます!

【rails】yieldメソッドについて

最近railsでアプリケーションを作成していると、なんとなくはわかっているつまりだけど
何かよくわかっていないという基礎的な内容があります。
今回はまさにその代表格かもしれないですね。

今回はyieldメソッドについて私なりに簡単に記載します。

yieldメソッドとは簡単にいうと、一つのレイアウトの中に
別のレイアウトを持ってくることができるrubyのメソッドです。

参考サイト
https://www.sejuku.net/blog/20478

例えばrailsだとアプリケーションのレイアウトをまとめた「application.html.erb」ファイルが
あるのですがこのファイルのbodyタブに記載されています。

この記述があることで別フォルダに作成した全てのviewファイルを「application.html.erb」に集約することができます。
yieldを使わなければ、全てのviewの記載をbodyタブ内に記載することになります。

app/view/layouts/application.html.erb

<!DOCTYPE html>
<html>
  <head>
    <title>SelfRecord</title>
    <%= csrf_meta_tags %>
    <%= csp_meta_tag %>

    <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload' %>
    <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
  </head>

  <body>
    <%= yield %>
  </body>
</html>

<%= yield %>という一つの記載ですが、大きな役割を担っています。
普段意識することはないと思うのですが、この記載で別ファイルのviewを読み込んでいるのは
理解しておきたいです。