Rails4 モデル名等を変更

モデルもコントローラもビューもスペックのテストもつくったが、モデル名を変更したくなった。

今回はCombinationsをTargetsに変更するものとする。

1.テーブル名を変更

コマンドプロンプトで下記を実行し、マイグレーションファイルを作成する。

rails g migration RenameCombinationsToTargets

すると、db/migrate/20131226072726_rename_combinations_to_targets.rbというファイルが作成された。(20131226072726の部分は可変)

20131226072726_rename_combinations_to_targets.rbを開き、リネーム処理を追加する。

class RenameCombinationsToTargets < ActiveRecord::Migration
  def change
    rename_table :combinations, :targets  # この行を追加
  end
end

コマンドプロンプトで下記を実行しテーブルのリネーム処理を実行する。

rake db:migrate

2.ファイル名・フォルダ名を変更

モデル

app/models/combination.rbをtarget.rbに変更する。

ヘルパー

app/helpers/combinations_helper.rbをtargets_helper.rbに変更する。

コントローラ

app/controllers/combinations_controller.rbをtargets_controller.rbに変更する。

ビュー

app/views/combinationsをtargetsに変更する。

スペック

spec/factories/combinations.rbをtarget.rbに変更する
spec/moldels/combination_spec.rbをtarget_spec.rbに変更する。
spec/helpers/combinations_helper_spec.rbをtargets_helper_spec.rbに変更する。
spec/controllers/combinations_controller_spec.rbをtargets_controller_spec.rbに変更する。
spec/views/combinationsをtargetsに変更する
spec/requests/combinations_spec.rbをtargets_spec.rbに変更する。
spec/routing/combinations_routing_spec.rbをtargets_routing_spec.rbに変更する。

JavaScript

app/assets/javascripts/combinations.js.coffeeをtargets.js.coffeeに変更する。

スタイルシート

app/assets/stylesheets/combinations.css.scssをtargets.css.scssに変更する。

3.クラス名・モジュール名を変更

モデル

app/models/target.rbのクラス名を変更する。

# 変更前
class Combination < ActiveRecord::Base

   ↓

# 変更後
class Target < ActiveRecord::Base
ヘルパー

app/helpers/targets_helper.rbのモジュール名を変更する。

# 変更前
module CombinationsHelper

   ↓

# 変更後
module TargetsHelper
コントローラ

app/controllers/targets_controller.rbのクラス名を変更する。

# 変更前
class CombinationsController < ApplicationController

   ↓

# 変更後
class TargetsController < ApplicationController

4.クラス名・モジュール名・関数名・変数名を置換

CombinationをTartetに置換し、combinationをtargetに置換する。
※大文字小文字を区別して置換すること。

置換ファイル
app/assets/javascripts/targets.js.coffee
app/assets/stylesheets/targets.css.scss
app/models/target.rb
app/models内のファイル
app/helpers/targets_helper.rb
app/controllers/targets_controller.rb
app/controllers内のファイル
app/views/targets内のファイル
app/views/内のファイル
config/routes.rb
config/locales/ja.yml
spec/factories/target.rb
spec/moldels/target_spec.rb
spec/moldels内のファイル
spec/helpers/targets_helper_spec.rb
spec/controllers/targets_controller_spec.rb
spec/controllers内のファイル
spec/views/targets内のファイル
spec/views内のファイル
spec/requests/targets_spec.rb
spec/routing/targets_routing_spec.rb


参考:
Rails4 - Railsでモデル名を変更する - Qiita [キータ]