簡體   English   中英

嘗試向用戶添加“層”屬性(使用devise)。 Ruby on Rails

[英]Trying to add a 'tier' attribute to users (using devise). Ruby on Rails

我已經使用以下命令生成了遷移:

rails generate migration add_tier_to_user tier:string

為用戶添加等級,例如“管理員”或“學生”。

但是,此后, db:rake停止工作並返回錯誤。

遷移文件:

class AddTierToUser < ActiveRecord::Migration 
  def change 
    add_column :users, :tier, :string 
  end 
end

錯誤:

ActiveRecord::RecordInvalid: Validation failed: Email has already been taken

從您得到的錯誤來看,我認為這是發生的:

  1. 您創建了兩個或更多具有相同email值的User記錄。
  2. 您生成了遷移文件。
  3. 您為email字段添加了唯一性驗證。
  4. 您嘗試運行遷移。

如果我是對的,問題不是由遷移本身引起的,而是由以下事實引起的:當您通過rake db:something加載Rails環境時,會自動創建或更新User

暫無
暫無

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

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