アプリケーションのレイアウトにレイアウトを追加しようとしています。さまざまなレイアウトソリューションをすべて理解しようとして問題が発生しました。最初に、パーシャルが何であるか、またはそれらがレイアウトであるかどうかを完全に把握していなかったため、レイアウト内のレイアウトだけを試しました。多分私はその質問から始めることができます。レイアウトとパーシャルの違いは何ですか。
これが私が今持っているものです。ナビゲーションと他のいくつかの要素を持つヘッダーコードを別のレイアウトに分離しようとしています。このレイアウトをすべてのビューに配置したいと思います。つまり、コントローラーが呼び出されたときに呼び出される他のビューとともに、アプリケーションレイアウト内のレイアウトである必要があります。これは私のコードで<%= yield%>でカバーされています。そのyeildは機能しますが、:headerは機能しません。
アプリケーションレイアウト app/views / layouts / application.html.erb
<!DOCTYPE html>
<html>
<head>
<title>home</title>
<%= stylesheet_link_tag "application", :media => "all" %>
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
</head>
<body>
<div id="header"><%= yield(:header) %></div>
<%= yield %>
</body>
</html>
ヘッダーレイアウト app/views / layouts / application.html.erb
<% content_for :header %>
<p>HEADER TEXT</p>
<% end %>
上記のコードが機能しないのはなぜですか?
私が試したこのようなコードも見ましたが、エラーが発生しました。
<%= render layouts/header %>
誰かがこれらすべての異なる方法を説明できますか?ありがとう。