我的 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 有时验证(例如,对一个帖子请求而不对另一个帖子请求)有时不验证?
最佳答案
查看 http://datamapper.org/docs/validations和“上下文验证”——也许这就是您要找的。p>
关于ruby - 使用 sinatra 和 datamapper 进行延迟注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4119113/