3

多くのレコードの「ステータス」フィールドが 0 に設定されているデータをロードしたテーブルがいくつかあります。それらを値 1 に変更したいと考えています。このような移行を記述することは可能ですか?

class UpdateStatusContent < ActiveRecord::Migration
  def self.up
    MiscDescription.where ["status = ?", 0].update ["status = ?", 1]
    QuestionsBasic.where ["status = ?", 0].update ["status = ?", 1]
    QuestionsStrength.where ["status = ?", 0].update ["status = ?", 1]
  end

  def self.down
  end
end

MySQL で直接行うこともできますが、移行を使用することをお勧めします。少し検索して実験しましたが、うまくいく解決策を見つけることができませんでした。

ご協力いただきありがとうございます。

4

1 に答える 1

2

はい、できるはずです。update_all代わりに使用する必要があるのは次のupdateとおりです。

MiscDescription.where("status = 0").update_all("status = 1")

(この構文を使用する必要はありません:["status = ?", 0]ユーザー入力が含まれていない場合)

于 2012-04-12T03:51:14.723 に答える