代码之家  ›  专栏  ›  技术社区  ›  Max Schmeling

如何在RubyonRails中添加字段?

  •  5
  • Max Schmeling  · 技术社区  · 15 年前

    我不熟悉ror,我只是使用scaffold生成一个表并为crud操作创建页面。现在,我想向此添加一个新字段。我找到的一个地方告诉我如何在数据库中执行这个操作,但是有没有一种方法可以将字段添加到所有页面中,或者这只是一个手动操作,我需要确保预先知道所有字段?

    4 回复  |  直到 15 年前
        1
  •  13
  •   EmFi    15 年前

    向数据库中添加新列

    $ script/generate migration add_fieldname_to_tablename fieldname:string 
    $ rake db:migrate
    

    为了更新视图,您可以使用更新后的字段列表再次运行scaffold。它会阻止替换您的迁移,但您可以强制它替换您的视图。

    $ script/generate scaffold tablename fieldname:string old_field_1:string ...
    

    在提示下,回答A,它将覆盖视图,但不会覆盖旧的迁移。它也不会修改您现有的数据。

        2
  •  3
  •   Karmen Blake    15 年前

    首先,您将编写一个迁移来添加字段,运行迁移,然后需要重新运行脚手架来重新生成视图,等等。注意,这将清除以前编辑过的文件。当然,您可以在适当的地方手动添加对新字段的引用,而不是再次使用脚手架。

        3
  •  1
  •   kikito    15 年前

    无论发生什么,您都必须更新数据库(在创建迁移之后,请记住“rake db:migrate!”)

    在界面方面,您更幸运了: formtastic 插件使您的视图如下所示:

    “f.inputs”正在根据模型的属性动态计算表单字段。这不包括需要特殊处理的复杂表单,但通常情况下,您将自动获得它们。

    要了解一个简单易懂的教程,请参阅最新的Railscast(RailsCast 184,你必须谷歌搜索,我不能发布2个链接,因为我还没有足够的酷到StackOverflow,对不起)。

    Railcast 185将继续覆盖formtastic,预计将于下周一发布。

        4
  •  0
  •   Omar Qureshi    15 年前

    需要手动操作,或者需要重新生成脚手架。