Edited at

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

More than 3 years have 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>