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 回答