我是RoR的新手,我刚刚使用scaffold生成一个表并为CRUD操作创建页面。现在我想为此添加一个新字段。我找到的一个地方告诉我如何在数据库中做到这一点,但有没有办法在它将所有页面添加字段,或者只是一个手动操作,我需要确保我知道所有我的领域在前面?
答案 0 :(得分:13)
向数据库添加新列
$ script/generate migration add_fieldname_to_tablename fieldname:string
$ rake db:migrate
要使您的视图保持最新,您可以使用更新的字段列表再次运行脚手架。它将不再替换您的迁移,但您可以强制它替换您的视图。
$ script/generate scaffold tablename fieldname:string old_field_1:string ...
在提示符处回答a并且它将覆盖视图,但不会覆盖旧的迁移。它也不会修改您现有的数据。
答案 1 :(得分:3)
首先,您将编写迁移以添加字段,运行迁移,然后您需要重新运行脚手架以重新生成视图等。请注意,这将从之前删除已编辑的文件。当然,您可以在适当的时候手动添加对新字段的引用,而不是脚手架。
答案 2 :(得分:1)
无论如何,您都必须更新数据库(创建迁移后请记得'rake db:migrate')。
关于界面,你有点幸运:formtastic插件让你的观点看起来像这样:
'f.inputs'正在根据您的模型属性即时计算表单字段。这不包括需要特殊处理的复杂表格,但通常情况下,你会自动获得它们。
要获得一个易于理解的教程,请参阅最新的铁路广播(Railscast#184,你将不得不谷歌,我不能发布2个链接,因为我还不够酷,无法使用stackoverflow,抱歉)。
Railcast#185应该继续覆盖formtastic,它将于下周一发布。
答案 3 :(得分:0)
需要手动完成,或者需要重建脚手架。