0
0

コマンドでファイルを作成するジェネレーターの作成

Last updated at Posted at 2024-01-17

はじめに

本記事はRails ジェネレータとテンプレート入門を参考にしています。
勉強中のため、誤りやもっといいやり方があるかも知れません。
その場合は、ご指摘いただけますと幸いです。

また、可能な限りわかりやすく記載するつもりですが、不明瞭な点、追記した方がいい点などがございましたら、合わせてご教授ください。

この記事の目的

ジェネレーターの作成方法を備忘録を兼ねて残しておきます。
今回のジェネレーターでは、コマンドを叩いてテンプレートファイルからファイルを作成することを目標とします。
具体的には、下記のコマンドを叩いて、controllers/hoge_hoge_controller.rb を作成しようと思います。

bin/rails generate hoge hoge_hoge

ジェネレーターとは

データやプログラムコードを自動的に生成するプログラムのことです。

テンプレートを作成

コピーするための雛形を下記のように作成しておきます。

lib/generators/hoge/templates/hoge.rb.erb

class <%= file_name.camelize %>Controller < ApplicationController
  def create
    # ここに処理を書く
  end

  def edit
    # ここに処理を書く
  end
end

ジェネレーターを作成

file_name を引数と取るようにし、ファイル作成の処理を記載します。

lib/generators/hoge/hoge_generator.rb

require 'rails/generators'

class DataMigrationGenerator < Rails::Generators::Base
  argument :file_name, type: :string, default: 'default_file_name', banner: 'file_name'
  source_root File.expand_path('templates', __dir__)

  def create_initializer_file
    template 'hoge.rb.erb', "controllers/#{file_name}_controller.rb"
  end
end

実行結果

controllers/hoge_hoge_controller.rb

class HogeHogeController < ApplicationController
  def create
    # ここに処理を書く
  end

  def edit
    # ここに処理を書く
  end
end
0
0
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
0
0