Rails で OGP を content_for で設定する方法
はじめに
Rails で OGP meta tags を設定する方法について整理した。この例では content_for
を使ってページ別に定義する方法を用いている。
TL;DR
- サイト名などの共通項はレイアウトファイルに記述
- レイアウトファイルに
yield(:ogp)
を追加し、ページ別の設定内容を展開 - 個別ページの view ファイルに
content_for(:ogp)
でページ別の設定内容を記述
目次
環境・条件
1 | $ ruby -v |
詳細
レイアウトファイル
app/views/layouts/application.html.slim
head
にprefix
属性を付与する- OGP の共通的な内容(サイト名とか)はここに書く
- OGP のページ別の内容を
= yield(:ogp)
で展開する
1 | doctype html |
トップページ
app/views/xxxx/index.html
contnt_for(:ogp)
で下層に個別設定を定義するslim
なのでネストだけだが、erb
の場合には<%= content_for(:ogp) do %>
となる
- トップページは
og:type
をwebsite
(やblog
など)に設定
1 | = content_for(:ogp) |
その他のページ
app/views/xxxx/show.html
contnt_for(:ogp)
で下層に個別設定を定義- トップページ以外は
og:type
をarticle
に設定
1 | = content_for(:ogp) |
Tips
og:description
ページ別の設定をするときは、文章べた書きじゃなくて item.name
のような情報を埋め込む形になると思う。
og:description
は90文字ぐらいが良い(とどこかで見た)ので、以下のように設定すると良い(っぽい)。
1 | = content_for(:ogp) |
まとめ
- サイト名などの共通項はレイアウトファイルに記述
- レイアウトファイルに
yield(:ogp)
を追加し、ページ別の設定内容を展開 - 個別ページの view ファイルに
content_for(:ogp)
でページ別の設定内容を記述
その他・メモ
.slim
のシンタックスハイライトが効かなくて見づらい- kpumuk/meta-tags を使う方が楽かも?(試してない)
参考文献
- Railsのcontent_forが便利 - 線路は続くよどこまでも。
- meta-tagsでRailsアプリのmetaタグとOGP設定 | EasyRamble
- kpumuk/meta-tags: Search Engine Optimization (SEO) for Ruby on Rails applications.
関連記事
- Rails で rambulance を使ってエラー種別ごとに動的にエラーページを切り替える
- Rails で high_voltage を使って静的ページを作成する
- Rails で favicon の設定
- Rails で簡易的な年齢認証(年齢確認)を導入する方法
- Rails で既存の DB を利用するアプリケーションの作成方法(DB 参照のみ)
- Rails で Devise と論理削除を両立する方法
- JavaScript で URL のクエリパラメータを操作する方法
- jQuery Select2 で、初期値の設定と選択状態のクリア