Blog

rails generateで作成されるひな形をカスタマイズする方法


Railsではcontroller内で日本語などを使用する場合には先頭に「# coding: utf-8」というマジックコメントを記入しないといけないらしい。
でも毎回これを記述するのがメンドクサイ。

Controllerを作成する場合には「rails generate controller hoge」というRailsのコマンドを使って雛形を作るのですが、このひな形に最初から記述されていればマジックコメントを記述する手間が省ける訳で。
たった一行の為に探しましたよ色々と。「プログラマーの三大美徳 怠慢」

まずは下記のrakeコマンドでgenerateで使われるテンプレートをアプリフォルダーにコピーします。

1
rake rails:templates:copy

各種テンプレートは「MyApp/lib/templates」にコピーされるので、この中の「MyApp/lib/templates/rails/controller/controller.rb」をテキストエディタなどで開きます。
このファイルが「rails generate controller hoge」で使用されるテンプレートなのでこれを編集します。
マジックコメントを記述して、その他にもRDoc用のコメントも記述しておきます。
このテンプレート内では「class_name」「action」などの変数も使用出来るみたいなので自分好みにカスタマイズしてください。その他にも取得できる変数ってないんだろうか?

1
2
3
4
5
6
7
8
9
10
11
12
13
# coding: utf-8                                                                                                                                                                      

# Author:: tochi                                                                                                                                                                    
# Copyright 2011 aguuu Inc. All rights reserved.                                                                                                                                    
class < %= class_name %>Controller < ApplicationController
<% for action in actions -%>
  #                                                                                                                                                                                  
  def < %= action %>

  end

< % end -%>
end

あとは上記のテンプレートを保存していつも通りに「rails generate controller hoge」とコマンド入力すれば該当のテンプレートに沿ったひな形が作成されます。

その他にもテンプレートにはscaffoldのテンプレートや、Viewに関連するテンプレートがカスタマイズできるみたいです。

ただモデルに関連するテンプレートは無いですね。。。変更できないのか?

上記の事も下記の書籍に書いていました。
初心者〜中級者向けの書籍としてはとってもおすすめです。



This Post Has 1 Comment

  1. […] 指定を毎回しなければならないところ。 もうrails generateするときに最初から # conding: utf-8 を追加してくれていればいいのに!![email protected]ットした。 […]

Leave A Reply