Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
8
Help us understand the problem. What is going on with this article?
@zenizh

RailsでページのタイトルをI18nを使って変更する方法

More than 3 years have passed since last update.

1. 概要

Railsでページのタイトルを変更する方法としては、独自にヘルパーメソッドを追加する方法などがあるが、ここではtitleizerというGemを使った方法を示す。

2. インストール

Gemfileに以下を追加し、bundle installする。

Gemfile
gem 'titleizer'

3. 使い方

基本的な使い方

1) タイトルを設定する

config/locales/*.ymlに、以下のようにタイトルを設定する(例えばtitle.ja.yml)。

config/locales/title.ja.yml
ja:
  title:
    application: サンプルブログ
    description: これはサンプルブログです
    posts:
      index: 記事一覧
      show: "%{subject}"
      new: 記事投稿
      edit: 記事編集
          :

2) タイトルタグを編集する

app/views/layouts/application.html.erbのタイトルタグを次のように編集する。

app/views/layouts/application.html.erb
<!DOCTYPE html>
<html>
  <head>
    <title><%= title(yield :title) %></title>
        :
  </head>

以上で、コントローラとアクションに応じたタイトルが自動でタイトルタグに設定される。
例えば、上記設定ではタイトルは以下のようになる。

パス タイトル
root_path これはサンプルブログです | サンプルブログ
posts_path 記事一覧 | サンプルブログ

オプション

変数を使用する

例えばtitle.ja.yml内の%{subject}など、タイトルに変数を使用したい場合がある。
この場合、コントローラのアクション内で@title_paramsに変数をセットできる。

app/controllers/posts_controller.rb
class PostsController < ApplicationController
  def show
    @post = Post.find(params[:id])

    @title_params = { subject: @post.subject }
  end
end

タイトルを上書きする

例えばエラーページなど、title.ja.yml内で設定したタイトルとは違うタイトルを設定したい場合がある。
この場合、ビューでprovide :titleにより上書きできる。

app/views/shared/_render_404.html.erb
<% provide :title, '404 Not Found' %>

4. 参考

8
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
zenizh
Webサービスとアプリづくりが趣味。新卒で上場企業→4ヶ月で退職し起業→失敗しフリーランス→スタートアップなど数社→Webサービスのみで暮らせるようになりました。共著に『現場で使えるRuby on Rails 5』。ふだんは会社員をしつつ、副業でWebサービスを運営しています。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
8
Help us understand the problem. What is going on with this article?