ruby on rails 3 - rails - cómo establecer el valor predeterminado a la columna en los rieles al crear la migración
llaves foraneas ruby on rails (4)
Soy nuevo en Modelo en rieles. Sé cómo crear un modelo y cómo agregarles una columna. Ahora quiero establecer el valor predeterminado en una columna, pero no entiendo exactamente cómo puedo hacerlo.
Generé nuevo modelo
rails g model User
luego se le agrega una columna
rails generate migration AddNotificationEmailToUsers notification_email:boolean
Ahora quiero establecer el valor predeterminado de la columna de notificación como verdadero. Por favor guíame cómo escribir la migración para el mismo. ¡¡¡Gracias!!!
A partir de ahora no hay manera de especificar el valor predeterminado definido a través de la terminal en la migración de rieles.
puede ejecutar los pasos siguientes para especificar el valor predeterminado para una columna
1). Ejecutar
$ rails generate migration AddNotificationEmailToUsers notification_email:boolean
2). Especifique el nuevo valor predeterminado de la columna en VERDADERO / FALSO editando el nuevo archivo de migración creado.
class AddNotificationEmailToUsers < ActiveRecord::Migration
def change
add_column :users, :notification_email, :boolean, default: true
end
end
3). Ejecutar por encima de la migración generada ejecutando.
$ rake db:migrate
El mejor enfoque aquí es utilizar change_column
en su migración. Se anuncia un cambio de tipo, pero puede usarlo para adjuntar un valor predeterminado a la columna existente.
tuve
location :integer
en el esquema y quería establecer el valor predeterminado en cero, por lo que escribí una migración como tal:
change_column :player_states, :location, :integer, :default => 0
Eso hizo el truco.
Frederick Cheung es correcto, necesitará editar el archivo de migración para esto. Solo una pequeña actualización agrega una coma después del tipo de datos antes de especificar el valor predeterminado.
add_column :users, :notification_email, :boolean, :default => true
No puede hacer esto desde la línea de comandos; tendrá que editar el archivo de migración y cambiar la línea correspondiente a algo como
add_column :users, :notification_email, :boolean, :default => true