マイグレーションによってマイデータベース内のプロパティという名前のテーブルに新しい列がデフォルトで追加されました。新しく追加された列をRailsに移入する
class AddDefaultToProperty < ActiveRecord::Migration
def self.up
add_column :property, :is_default, :boolean
end
def self.down
remove_column :property, :is_default
end
end
デフォルト列はプロパティがデフォルト1であるかどうかと言うブール値が含まれています。今私はいくつかの特定の行のためにその列を設定する方法が必要です。この作業を行う最善の方法はどれですか?近い将来、デフォルトのプロパティが変更されるため、この状況を考慮するには柔軟な方法が必要です。
使用して、レール2.3.10
ありがとう!
はい、データの可用性を待つことができます。私は第二の選択肢がより適していると思う。しかし、どうしたらいいですか?私が思った簡単な解決策は、デフォルトとして設定する必要があるすべての行を見つけ出し、列を1で更新することでした。 – flyer88
最も速い方法は、MySQLコマンドを使用することです。更新は、その情報をレールに戻すのではなく、サーバー上で行われるからです。たとえば、次のSQLを実行するRakeタスクを作成できます。 "UPDATEプロパティSET is_default = 1 WHERE some_attribute = true AND some_other_attribute = false"これがオプションでない場合、Rubyループを作成して各レコードを更新することができます。 –