懒惰注册sinatra和datamapper

时间:2010-11-07 18:44:07

标签: ruby validation sinatra datamapper

我的Sinatra应用程序中有一个用户模型,要求用户输入电子邮件密码和密码确认。有点像这样:

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有时进行验证(例如,对于一个帖子请求而不是另一个请求),有时候不是吗?

1 个答案:

答案 0 :(得分:2)

查看http://datamapper.org/docs/validations和“内容相关验证” - 也许这就是您要找的内容。