我是一个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 :migrate时,添加了新的列。但是,视图不同步。我是否应该手动将新列添加到视图中?有没有办法使用新的表列自动重新生成模型/视图?
对不起,这是一个基本的问题,但从我与其他框架的经验来看,它应该是自动的。关于迁移的rails指南并没有明确说明在执行迁移后同步应该如何工作。
发布于 2009-11-14 06:05:17
不幸的是,您将需要手动修改视图。视图是通过运行script/generate scaffold命令创建的。迁移只会更改数据库。从技术上讲,您可以重新运行scaffold命令并使其重新生成视图。它将询问您是否要覆盖以前的文件,但是,如果您使用此方法,则仍需要指定所需的所有列。您不能简单地在这里和那里添加一些。
如果您处于早期开发阶段,则可以采用此方法。只需运行
script/destroy scaffold Item然后重新运行
script generate scaffold Item col1:string col2 string col3:numeric如果你正在创建只有几个用户才能看到的东西,有一些动态脚手架扩展可用,但我建议你自己做ActiveScaffold,因为它总是会以你想要的方式出现。
我似乎找不到任何其他的动态脚手架插件。以前有很多..。
https://stackoverflow.com/questions/1732135
复制相似问题