1. ホーム
  2. ruby-on-rails

列の更新、全行

2023-09-09 07:28:09

質問

テーブルに新しいカラムを追加したのですが、その際に :default オプションを追加するのを忘れていました。今、私はすべての行でそのカラムを入力したいと思います。

コンソールを使用して行う方法はありますか?この1時間、グーグルで検索しましたが、何も見つかりませんでした。

単一のオブジェクトに対して行う方法は知っていますが、モデルのすべての行に対して行う方法はありません。

Foo.find(1).update_attribute(:myattribute, 'value')

どのように解決するのですか?

これを試してみてください。

Foo.update_all(some_column: "bar")

これはデータベースへのSQLクエリを生成します。

UPDATE "foos" SET "some_column" = "bar";