Ruby on rails 在Rails迁移中使用模型字段作为默认值
在我的Rails4应用程序中,我想在我的用户模型中添加一个“username”字段。由于数据库中已经有用户,我希望在迁移中使用他们的电子邮件(目前是模型的一部分)作为默认用户名。以下是我目前掌握的情况:Ruby on rails 在Rails迁移中使用模型字段作为默认值,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,在我的Rails4应用程序中,我想在我的用户模型中添加一个“username”字段。由于数据库中已经有用户,我希望在迁移中使用他们的电子邮件(目前是模型的一部分)作为默认用户名。以下是我目前掌握的情况: class AddUsernameColumnToUsers < ActiveRecord::Migration def change add_column :users, :username, :string, null: false add_index :users
class AddUsernameColumnToUsers < ActiveRecord::Migration
def change
add_column :users, :username, :string, null: false
add_index :users, :username, unique: true
end
end
但该代码无效。有什么想法吗?提前谢谢。你可以这样解决它
类AddUsernameColumntUserscode
add\u列:users,:username,:string query='updateusers SET username=email'ActiveRecord::Base.connection.execute(query)add\u index:users,:username,unique:true change\u列:users,:username,:string,:null=>falsecode
add_column :users, :username, :string, null: false, default: this.email
class AddUsernameColumnToUsers < ActiveRecord::Migration
def up
add_column :users, :username, :string, null: false
add_index :users, :username, unique: true
query = 'UPDATE users SET username = email'
ActiveRecord::Base.connection.execute(query)
end
def down
remove_column :users, :username
end
end