2010-11-07 95 views
2

惰性註冊我有我的西納特拉的應用程序,要求用戶輸入電子郵件密碼和密碼確認用戶模型。沿此線的東西:與西納特拉和DataMapper的

class User 
    include DataMapper::Resource 

    property :id,     Serial 
    property :email,    String, :required => true, :unique => true, :format => :email_address, 
    property :name,    String 
    property :hashed_password, String 
    property :salt,    String 
    property :created_at,   DateTime 

    attr_accessor :password, :password_confirmation 

    validates_presence_of  :password_confirmation 
    validates_presence_of  :password 
    validates_length_of  :password, :min => 6 
    validates_confirmation_of :password 
end 

這工作得很好,所有除了我希望能夠不輸入任何東西,但一個名稱的用戶創建用戶並關聯其他車型給該用戶。過了一段時間,用戶將創建一個組以及與該組關聯的其他用戶。 然後,我需要用戶能夠輸入電子郵件地址和密碼,並將其放入數據庫中創建的字段中。我想驗證不會發生,直到我保存我創建的用戶對象,但我需要將用戶保存在數據庫中,而無需電子郵件和密碼當然如果他們想要能夠登錄他們將需要提供的信息爲此需要。

創建我自己的驗證方法還是有辦法讓DataMapper的驗證有時(例如,一個職位的要求,但不得爲其他),有時不?

回答