2010-11-07 90 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的验证有时(例如,一个职位的要求,但不得为其他),有时不?

回答