Как установить значение для нового столбца в Rails 3? - PullRequest
4 голосов
/ 16 мая 2011

Это, вероятно, в другом вопросе, но я не могу его найти.

Я относительный нуби к Rails.Я пытаюсь добавить новый столбец в таблицу, в которой уже есть данные.Этот столбец не разрешает пустые значения.Какой самый простой способ обновить все существующие записи, чтобы иметь значение в этом новом столбце?Я знаю, что это, вероятно, находится в восходящем блоке моей миграции, но я не знаю, какой будет синтаксис.

def self.up
  change_table :reminders do |t|
    t.boolean :active
  end
  #model name is Reminder - how to update data with a value?
end

Ответы [ 2 ]

7 голосов
/ 17 мая 2011

Что вы можете сделать, это добавить столбец, обновить все записи в таблице с требуемым значением, а затем изменить его, чтобы запретить нулевые значения.

def self.up
  add_column :reminders, :active, :boolean, :default => true
  Reminder.update_all( "active = ?", true )
  change_column :reminders, :active, :boolean, :default => true, :null => :false
end
0 голосов
/ 16 мая 2011

Попробуйте это:

def self.up
  change_table :reminders do |t|
   t.boolean :active, :default => true #or your value
  end
#model name is Reminder - how to update data with a value?
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...