3

アプリ内のコントローラーとモデル、および対応するコード内のすべてのインスタンスの名前を変更する簡単な方法はありますか?

私は textmate を使用しています。これは、replace 関数を使用して Post という単語を Report に置き換えるのと同じくらい簡単ですか?

4

5 に答える 5

7

Controllerの名前と、関連するModelViewsHelpersTests & 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にコピーし、テキストエディターでこのファイルを検索して置換boardproduct.

2 番目のオプションの方がはるかに信頼性が高く、迅速であると思いますが、コードに手動で変更を加える前に、プロジェクトの早い段階でこの変更を行うことが重要です。プロジェクトを開始する前に、MVC 名とデータベース テーブルを適切に計画するために、もう少し時間をかけてください。

于 2012-11-16T11:39:48.913 に答える
3

rails_refactor gemを使用してコントローラーやモデルなどの名前を変更して、詳細を確認することもできます https://github.com/jcrasp/rails_refactor

于 2014-03-26T06:13:09.763 に答える
1

textmate を使用している場合は、「command-shift-f」を使用して、プロジェクト全体で文字列を探します。

于 2011-04-20T01:46:47.500 に答える
0

はいといいえ。そのように名前を変更できますが、ファイルの名前も変更する必要があります。そうしないと、Rails は新しいレポート モデル/コントローラー/などに対応するファイルを探す場所を認識できなくなります。

于 2011-04-15T05:19:59.450 に答える