[Rails]provideヘルパでlayoutにデータを引き渡す

  • 65
    Like
  • 0
    Comment
More than 1 year has passed since last update.

タイトルとかOGPとかをview側から動的にlayoutにデータを引き渡したいときの定石。

app/views/posts/index.html.erb
<% provide :title, "ページ個別タイトル" %>
<% provide :og_title, "ページ個別facebookタイトル" %>

このデータをlayoutから参照できる。

app/views/layouts/application.html.erb
<title><%= yield :title %></title>
<meta property="og:title" content="<%= yield :og_title %>" />

provide使ってないページとかあったりする場合はデフォルトの文言が表示されるようにしておくといい。

app/views/layouts/application.html.erb
<title><%= yield(:title).presence || "デフォルトタイトル" %></title>