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に変更する。
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