有关rails迁移和同步视图的问题

时间:2009-11-13 21:48:07

标签: ruby-on-rails ruby migration

我是Rails的初学者,并试图了解rails迁移的工作原理。 我创建了一个脚手架,如:

script/generate scaffold Item col1:string col2:text
rake db:migrate

我想使用迁移添加另一个col4:

我按如下方式创建了一个迁移:

class AddCol4 < ActiveRecord::Migration
  def self.up
        add_column      :items, :col4, :numeric
        Item.reset_column_information
  end

  def self.down
        remove_column   :items, :col4
  end
end

当我运行rake db:migrate时,会添加新列。但是视图不同步。 我应该手动将新列添加到视图中吗?有没有办法使用新表格列自动重新生成模型/视图?

抱歉,这是一个基本问题,但根据我对其他框架的经验,它应该是自动的。 关于迁移的rails指南并没有明确说明在执行迁移后同步应该如何工作。

1 个答案:

答案 0 :(得分:2)

不幸的是,您需要手动修改视图。通过运行script/generate scaffold命令创建视图。迁移仅更改数据库。从技术上讲,您可以重新运行scaffold命令并让它重新生成视图。它会询问您是否要覆盖以前的文件,但是,如果您使用此路径,则仍需要指定所需的所有列。你不能简单地在这里和那里添加一些。

如果您处于早期开发阶段,那么您可以选择这条路线。只需运行

script/destroy scaffold Item

然后重新运行

script generate scaffold Item col1:string col2 string col3:numeric

有一些动态脚手架扩展可用,例如ActiveScaffold,如果你创建的东西只有少数用户会看到,但我建议你自己做HTML,因为它总会按照你想要的方式出现。 / p>

我似乎无法找到任何其他动态脚手架插件。曾经有过不少......