簡體   English   中英

使用模型字段作為Rails遷移中的默認值

[英]Use model field for default value in Rails migration

在我的Rails 4應用程序中,我想向用戶模型添加一個“用戶名”字段。 由於我已經在數據庫中有用戶,因此我想在遷移中使用他們的電子郵件(當前是模型的一部分)作為默認用戶名。 這是我到目前為止的內容:

class AddUsernameColumnToUsers < ActiveRecord::Migration
  def change
    add_column :users, :username, :string, null: false
    add_index :users, :username, unique: true
  end
end

所以,我想做些類似的事情:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM