有没有一种简单的方法可以重命名我的应用程序中的控制器和模型以及相应代码中的所有实例?
我正在使用 textmate,这会像使用替换功能并用报告替换单词 Post 一样简单吗?
有没有一种简单的方法可以重命名我的应用程序中的控制器和模型以及相应代码中的所有实例?
我正在使用 textmate,这会像使用替换功能并用报告替换单词 Post 一样简单吗?
您需要更改Controller的名称以及关联的Model、Views、Helpers、Tests & Routes目录、文件名、类名和类定义中的名称。
我找到了两种方法来做到这一点,但在你尝试任何事情之前,我建议你备份你的应用程序,最好使用 Git 和 Github.com 等软件版本控制系统。
您的第一个选择是手动完成,这里有一个很好的解释:如何在项目中重命名 rails 控制器和模型
另一种方法是destroy
您的控制器和模型,然后generate
是一个新的,这将删除第一次生成的所有文件并用新文件替换它们。Michael Hartl 在他的 Ruby on Rails 在线指南中很好地解释了这个解决方案:http: //ruby.railstutorial.org/chapters/static-pages#sidebar-undoing_things
当我需要对我的应用程序进行此更改时,这是我遵循的解决方案,我需要将我生成的 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. 最后
我将备份的board/index.html.erb文件复制到新生成的app/views/products/index.html.erb中,并在我的文本编辑器中对该文件进行了查找和替换board
以替换为product
.
我认为第二种选择更可靠、更快捷,但在您对代码进行过多手动更改之前,在项目早期进行此更改非常重要。在你开始你的项目之前,最好多花一点时间正确地规划你的 MVC 名称和数据库表。
您还可以使用rails_refactor gem重命名控制器、模型等以获取更多信息,请查看https://github.com/jcrisp/rails_refactor
要重命名控制器和模型,请使用此 gem https://github.com/jcrisp/rails_refactor
如果您使用的是 textmate,请使用“command-shift-f”在整个项目中查找字符串。
是和不是。你可以这样重命名它,但你也需要重命名文件,否则 Rails 将不知道在哪里寻找与新报告模型/控制器/等对应的文件。