Rails: 我如何在对底层 table 进行更改后重新生成由脚手架创建的所有视图?

Rails: How can I regenerate all the views created by scaffold after I make changes to the underlying table?

Rails 的新手,如果我的术语有误,请随时编辑我的问题!

我已经通过脚手架创建了我的 MVC,但此后对基础 table 进行了更改(重命名了一些列,添加了一些列)。有没有办法重新生成使用原始脚手架创建的视图,以便它们反映我所做的更改?

如果我 运行 rails g scaffold Foo --migration=false --skip 我得到一个错误,我的模型名称已经在我的应用程序中使用。

如果删除整个相应的视图文件夹(由原始脚手架创建的那个),我 运行 rails g scaffold Foo --migration=false --force 生成的视图仍然没有提取我的所有字段型号。

您可以反转脚手架生成并重新生成具有重命名和新列的新脚手架。

如果您已经迁移了数据库,则需要将其回滚。

rake db:rollback

然后就可以逆向生成脚手架了

rails destroy scaffold MyFoo

然后使用更新的列生成新的脚手架

rails generate scaffold MyFoo column_name_1:data_type column_name_2:data_type column_name_3:data_type

否则您可以手动重写您的视图和控制器以包含更新的和新的列。