0

現在、データベースのタイトル属性にフィールドがあります。以下がデフォルトとして追加されました。

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

私のレールアプリでは、これらの属性をビューのチェックボックスとして設定し、デフォルトですべて「チェック済み」に設定しています。ただし、次のように見えるように、デフォルトとしてさらにいくつかの属性を追加する必要があります。

{"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 に答える