アプリ内のコントローラーとモデル、および対応するコード内のすべてのインスタンスの名前を変更する簡単な方法はありますか?
私は textmate を使用しています。これは、replace 関数を使用して Post という単語を Report に置き換えるのと同じくらい簡単ですか?
アプリ内のコントローラーとモデル、および対応するコード内のすべてのインスタンスの名前を変更する簡単な方法はありますか?
私は textmate を使用しています。これは、replace 関数を使用して Post という単語を Report に置き換えるのと同じくらい簡単ですか?
Controllerの名前と、関連するModel、Views、Helpers、Tests & Routesディレクトリ、ファイル名、クラス名、およびクラス定義の名前を変更する必要があります。
これを行う方法は 2 つありますが、何かを試す前に、できれば Git や Github.com などのソフトウェア バージョン管理システムを使用してアプリをバックアップすることをお勧めします。
最初のオプションは手動で行うことです。これを行う方法についての良い説明があります: How to rename rails controller and model in a project
別の方法はdestroy
、コントローラーとモデル、次にgenerate
新しいものです。これにより、最初に生成されたすべてのファイルが削除され、新しいファイルに置き換えられます。Michael Hartlは、Ruby on Rails のオンライン ガイドでこのソリューションについて詳しく説明しています。
これは、アプリにこの変更を加える必要があったときに従ったソリューションです。生成した MVC の足場をboard
という新しいものに置き換える必要がありましたproduct
。
1.まず
ボードビューのレイアウトで行った作業のバックアップを作成しましたapp/views/boards/index.html.erb
2.次に
ターミナル ウィンドウで以下の Rails コマンドを実行しました。
$ rake db:rollback
$ rails destroy scaffold board name:string description:text image:string price:decimal
$ rails generate scaffold product product_type:string name:string description:text image:string price:decimal
$ rake db:migrate
3. 最後に
バックアップしたboards/index.html.erbファイルを新しく生成されたapp/views/products/index.html.erbにコピーし、テキストエディターでこのファイルを検索して置換しboard
、product
.
2 番目のオプションの方がはるかに信頼性が高く、迅速であると思いますが、コードに手動で変更を加える前に、プロジェクトの早い段階でこの変更を行うことが重要です。プロジェクトを開始する前に、MVC 名とデータベース テーブルを適切に計画するために、もう少し時間をかけてください。
rails_refactor gemを使用してコントローラーやモデルなどの名前を変更して、詳細を確認することもできます https://github.com/jcrasp/rails_refactor
textmate を使用している場合は、「command-shift-f」を使用して、プロジェクト全体で文字列を探します。
はいといいえ。そのように名前を変更できますが、ファイルの名前も変更する必要があります。そうしないと、Rails は新しいレポート モデル/コントローラー/などに対応するファイルを探す場所を認識できなくなります。