如何在创建表后在rails app中的sqlite3开发数据库中为列添加值

时间:2012-04-21 16:03:19

标签: ruby-on-rails ruby

您好我有一个rails应用程序,其中有一个名为“listing”的表。该表有一个名为“city”的列。但是该列现在没有数据,一切都为空。我想将字符串:“Not Available”添加到此表中所有行的列值。我怎么能这样做?

我尝试使用sql将其直接添加到数据库中,但它不起作用。

所以我想我必须使用rails migration命令来实现这一目标。但我找不到确切的命令。我知道它是这样的......

rails generate migration ??

有人可以帮我一把吗?

由于

1 个答案:

答案 0 :(得分:2)

在告诉您如何使用Rails实际执行此操作之前,我会请您考虑将此类表示逻辑硬编码到数据库模式中。您可以在模型级别执行此操作,只需覆盖此字段的访问者。

def city
  read_attribute("city") || "Not Available"
end

将此信息放入数据库可能会导致问题。例如,您将无法再快速判断哪些行具有city的默认值。

如果您确定要执行此操作,请在迁移中添加:

change_column :listings, :city, :default => "Not Available"