Rails 3.1 - 添加的列未在视图中显示

时间:2012-01-06 22:57:24

标签: ruby-on-rails-3

这一切似乎在一开始就很好......

rails generate migration add_starting_date_to_announcements starting_date:date
      invoke  active_record
      create    db/migrate/20120106223124_add_starting_date_to_announcements.rb

然后

rake db:migrate
==  AddStartingDateToAnnouncements: migrating =================================
-- add_column(:announcements, :starting_date, :date)
   -> 0.3281s
==  AddStartingDateToAnnouncements: migrated (0.3281s) ========================

当我查看数据库结构时,我看到starting_date正在显示。 问题是,当我点击“新公告”时,它向我显示包含数据库中所有旧列的视图(“通知”的文本字段和“注释”字段) - 但不显示使用“启动”的选项日期“在视图中。它就在那里。

重新启动webrick无济于事。

任何想法都会非常感激。 感谢。

3 个答案:

答案 0 :(得分:2)

创建并运行迁移后,您还必须更改视图以添加该新列的控件(show视图的简单标签,date_select视图的edit,等)

Ruby和Rails不是 魔法为你做这件事。

答案 1 :(得分:2)

迁移不会改变您的观点。您需要手动将属性添加到视图中,或者如果您依赖于脚手架(这只会让您到目前为止),请重新生成它们。

答案 2 :(得分:1)

你的DbMigrate不会为你更新你的观点,你必须手动去更新它们。

这样做是有充分理由的,想象一下你自定义了你的观点然后在你的桌子上添加了另一列,你想要覆盖你的视图吗?