как установить значение по умолчанию для столбца в рельсах при создании миграции - PullRequest
22 голосов
/ 26 декабря 2011

Я новичок в модели в рельсах.Я знаю, как создать модель и как добавить к ним столбец.Теперь я хочу установить значение по умолчанию для столбца, но не понимаю, как именно я могу это сделать.

Я сгенерировал новую модель

rails g model User

, затем добавил к ней столбец

rails generate migration AddNotificationEmailToUsers notification_email:boolean

Теперь я хочу установить значение столбца уведомлений по умолчанию как true.Подскажите пожалуйста как написать миграцию для того же.Спасибо !!!

Ответы [ 4 ]

48 голосов
/ 26 декабря 2011

Вы не можете сделать это из командной строки - вам придется отредактировать файл миграции и изменить соответствующую строку на что-то вроде

add_column :users, :notification_email, :boolean, :default => true
14 голосов
/ 21 марта 2013

Лучшим подходом здесь является использование change_column в вашей миграции.Он объявлен для изменения типа, но вы можете использовать его для добавления значения по умолчанию к существующему столбцу.

У меня было

location   :integer

в схеме, и я хотел по умолчанию установить ноль, поэтому я написалмиграция как таковая:

change_column :player_states, :location, :integer, :default => 0

Вот и все.

2 голосов
/ 19 апреля 2016

На данный момент нет способа указать значение по умолчанию, определенное через терминал в миграции rails.

Вы можете выполнить следующие шаги, чтобы указать значение по умолчанию для столбца

1). Выполнить

$ rails generate migration AddNotificationEmailToUsers notification_email:boolean

2). Задайте для нового столбца значение по умолчанию TRUE / FALSE, отредактировав новый созданный файл миграции.

class AddNotificationEmailToUsers < ActiveRecord::Migration
  def change
    add_column :users, :notification_email, :boolean, default: true
  end
end

3). Запустите выше сгенерированную миграцию, выполнив.

$ rake db:migrate
2 голосов
/ 26 декабря 2011

Фредерик Чунг правильно, вам нужно отредактировать файл миграции для этого. Просто небольшое обновление добавьте запятую после типа данных, прежде чем указывать значение по умолчанию.

add_column :users, :notification_email, :boolean, :default => true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...