我启动了一个 Rails 应用程序,一切正常。但现在,我想重命名控制器和关联的模型:
我想改变Corps
控制器到Stores
模型也相同(没有最后的 s)。
在谷歌上查看,人们建议销毁然后重新生成控制器和模型。问题是它会删除每个文件的实际代码!
解决办法是什么?
这是我要做的:
创建一个移民更改表名称(数据库级别)。我假设你的旧桌子叫corps。迁移内容将是:
class RenameCorpsToStores < ActiveRecord::Migration
def change
rename_table :corps, :stores
end
end
更改模型文件名、模型类定义和模型关联:
- 文件重命名:
corp.rb
-> store.rb
- Code of
store.rb
: 改变class Corp
for class Store
- 重命名所有模型关联,例如
has_many :corps
-> has_many :stores
更改控制器文件名和控制器类定义:
- 文件重命名:
corps_controller.rb
-> stores_controller.rb
- Code of
stores_controller.rb
: 改变class CorpsController
for class StoresController
重命名视图文件夹。从corps
to stores
.
对路径中的路径进行必要的更改config/routes.rb
文件,例如resources :corps
-> resources :stores
,并确保代码中的所有引用从 corps 更改为stores (corps_path, ...)
请记住运行迁移:)
如果前面的方法不可行,请尝试删除 db/schema.rb 并执行:
$ rake db:drop db:create db:migrate
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)