46
40

More than 5 years have passed since last update.

meta-tagsの使い方

Last updated at Posted at 2014-06-09

railsでページごとにtitleタグの中身を変えたい場合などに、毎回インスタンス変数に設定したりcontent_forをviewに埋め込んだりすることがありますが、それを簡単に書けるのがmeta_tagsです。
しかし、ちょっとインターフェイスが直感的でないところがあるので簡単に使い方をメモします。

共通のtitleやmeta tagを埋め込む

application.html.erb
<head>
  <% set_meta_tags site: 'My WebApp',
    separator: '-',
    title: 'mypage',
    charset: 'utf-8',
  %>
</head>

出力されるhtml

<head>
  <titile>My WebApp - mypage</title>
  <meta content="utf-8" name="charset">
</head>

上記のように、実際のtitleタグはsiteとtitleをseparatorで繋いだものになります。

readmeにはこの使い方で出ていますが、set_meta_tagsを2回実行しても再定義されないので、これだとページごとに動的な値をセットしようとしてもできません。
ページごとに変えたい場合は以下のようにします。

その都度定義したtitleやmeta tagを埋め込む

application.html.erb
<head>
  <% display_meta_tags default_meta_tags %>
</head>
application_helper.rb
def default_meta_tags
  {
    site: 'My WebApp',
    separator: '-',
    title: 'mypage',
    charset: 'utf-8'
  }
end

index.html.erb
<% set_meta_tags title: 'welcome!' %>

こうするとset_meta_tagsが優先されるので、default_meta_tagsにデフォルト値を書いておいて上書きするといったことができます。
あるいは、default_meta_tagsのハッシュにmergeするようなヘルパを書いても良いかも知れません。

定義したtitleなどをview内で呼び出す

meta-tagsの定義するヘルパを使ってtitleなどを呼び出すことができます。

index.html.erb
<% set_meta_tags title: 'mypage' %>

<h1><%= title %></h1>
46
40
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
46
40