我启动了一个 Rails 应用程序,一切正常。但现在,我想重命名 Controller 和关联的模型:
我想将 Corps
Controller 更改为 Stores
,并且模型的 Controller 也是如此(没有 Final s)。
在谷歌上查看,人们建议销毁然后重新生成 Controller 和模型。问题是它会删除每个文件的实际代码!
解决办法是什么?
最佳答案
这是我要做的:
创建迁移以更改表名称(数据库级别)。我假设您的旧表名为corps。迁移内容将是:
class RenameCorpsToStores < ActiveRecord::Migration
def change
rename_table :corps, :stores
end
end
更改模型文件名、模型类定义和模型关联:
- 文件重命名:
corp.rb
->store.rb
store.rb
代码:将class Corp
更改为class Store
- 重命名所有模型关联,例如
has_many :corps
->has_many :stores
更改 Controller 文件名和 Controller 类定义:
- 文件重命名:
corps_controller.rb
->stores_controller.rb
stores_controller.rb
代码:将class CorpsController
更改为class StoresController
重命名 View 文件夹。从军团
到商店
。
对 config/routes.rb
文件中的路径进行必要的更改,例如 resources :corps
-> resources :stores
,以及确保代码中的所有引用从corps更改为stores(corps_path,...)
记住运行迁移:)
如果前面的方法不可行,请尝试删除 db/schema.rb 并执行:
$ rake db:drop db:create db:migrate
关于ruby-on-rails - 如何重命名项目中的 Rails Controller 和模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11924124/