0

我目前在我的数据库标题属性中有一个字段。添加了以下作为默认值:

{"ag_type": [ "ag:adult40s", "ag:teen", "ag:senior"], "gender_type": "unisex"}

在我的 Rails 应用程序中,我将这些属性设置为视图中的复选框,并且默认为“选中”。但是,我需要添加更多属性作为默认值,所以它看起来像这样:

{"ag_type": [ "ag:adult20s", "ag:adult30s", "ag:adult40s", "ag:teen", "ag:senior"], "gender_type": "unisex"}

当我将这些值添加为默认值时,它们现在确实更改了数据库中每一行的默认值,但是当我检查结构时,它们被添加为默认值。如何更改数据库中每条记录的默认值(大约 40,000 条记录)

4

1 回答 1

0

您可以按照以下方式做一些事情:

console: rails g migration SetDefaultValuesForMyField

这将在 db/migrate 中创建一个空迁移

在迁移中,您可以执行以下操作:

class SetDefaultValuesForMyField < ActiveRecord::Migration
  def up
    change_column :table, :ag_type, :text, :default =>  [ "ag:adult40s", "ag:teen", "ag:senior"]
    Table.update_all ["ag_type= ?", [ "ag:adult40s", "ag:teen", "ag:senior"]]
  end

  def down
  end
end

更多关于迁移

于 2012-05-10T08:02:15.693 回答