Ответ 1
Вы не можете сделать это из командной строки - вам придется отредактировать файл миграции и изменить соответствующую строку на что-то вроде
add_column :users, :notification_email, :boolean, :default => true
Я новичок в модели в рельсах. Я знаю, как создать модель и как добавить к ней столбец. Теперь я хочу установить значение по умолчанию для столбца, но я не понимаю, как именно я могу это сделать.
Я создал новую модель
rails g model User
а затем добавил к нему столбец
rails generate migration AddNotificationEmailToUsers notification_email:boolean
Теперь я хочу установить значение столбца Notification default как true. Пожалуйста, расскажите мне, как написать миграцию для нее. Спасибо!
Вы не можете сделать это из командной строки - вам придется отредактировать файл миграции и изменить соответствующую строку на что-то вроде
add_column :users, :notification_email, :boolean, :default => true
Лучший подход здесь - использовать change_column
в вашей миграции. Объявляется изменение типа, но вы можете использовать его для привязки по умолчанию к существующему столбцу.
У меня был
location :integer
в схеме, и я хотел, чтобы по умолчанию был равен нулю, поэтому я написал миграцию как таковую:
change_column :player_states, :location, :integer, :default => 0
Это сделал трюк.
Фредерик Чунг прав, вам нужно будет отредактировать файл миграции для этого. Просто небольшое обновление добавляет запятую после типа данных, прежде чем указывать значение по умолчанию.
add_column :users, :notification_email, :boolean, :default => true
В настоящее время нет пути для указания значения по умолчанию, определенного через терминал в миграции рельсов.
вы можете выполнить следующие шаги, чтобы указать значение по умолчанию для столбца
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). Завершите выше сгенерированную миграцию с помощью Executing.
$ rake db:migrate