2014-02-28 47 views
0

所以我創建了一個名爲User的模型,並且需要電子郵件,但是我希望在我可能部署我的應用程序之前使其具有唯一性。我對Rails非常陌生,但是我已經找到了這個場景,我只找到允許您添加NEW列並將它們指定爲唯一的東西。將獨特的修飾符添加到Rails4中已經存在的模型

任何幫助表示讚賞。我不確定是否應該通過滑軌控制檯或將 validates_uniqueness_of :email 添加到我的模型或完全相同。 我試過了,運行了rake db:migrate,什麼也沒有發生。

在此先感謝!

一個Python蓋伊:P

回答

1

正如你所說,你可以做一個領域獨樹一幟加入uniqueness validation 你並不需要運行遷移。

(你爲了與電子郵件場之前創建用戶模型/表跑遷移林假設)您需要添加這個模型上的

class User < ActiveRecord::Base 
    validates :email, uniqueness: true # :email makes reference to the user's email attribute 
end 

爲了測試這一點。打開你的控制檯。 (軌ç上終端) 然後,您可以創建一個用戶:

User.create! email: "[email protected]" 

然後,對於第二次做到這一點:

User.create! email: "[email protected]" 

您將看到一個驗證錯誤

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

如果您執行創建而不是創建!你不會看到異常。小心,

+0

哦太棒了!我想我很困惑,如果我需要做一個db:之後的遷移。我仍在學習耙子:3 非常感謝您的幫助,您的回答非常翔實! –

相關問題