我正在使用Sinatra、Datamapper和OAuth进行用户身份验证的基本Ruby应用程序。当我从OAuth服务接收到数据后,我会在sqlite3数据库中保存一个新用户的记录。
我不知道如何验证用户记录是否已经存在于用户数据库表中。我可以使用用户的唯一ID(uid)来交叉检查是否已经存储了该UID,但我不确定应该在哪里执行此操作。
我有2个类和一个/callback路由。User类是数据库模型,而Authentication类具有连接到OAuth的各种方法以及/callback路由,其中将调用Authentication.save方法。
我应该在Authentication.save方法中检查现有记录并返回布尔值或其他内容吗?在Authentication中创建一个新方法,类似于Authentication.exists?(那看起来像什么?)还是应该在/callback路由内进行检查?
如果我的描述不够清晰,我很抱歉,因为我是一个完全的Ruby初学者...
我不知道如何验证用户记录是否已经存在于用户数据库表中。我可以使用用户的唯一ID(uid)来交叉检查是否已经存储了该UID,但我不确定应该在哪里执行此操作。
我有2个类和一个/callback路由。User类是数据库模型,而Authentication类具有连接到OAuth的各种方法以及/callback路由,其中将调用Authentication.save方法。
我应该在Authentication.save方法中检查现有记录并返回布尔值或其他内容吗?在Authentication中创建一个新方法,类似于Authentication.exists?(那看起来像什么?)还是应该在/callback路由内进行检查?
如果我的描述不够清晰,我很抱歉,因为我是一个完全的Ruby初学者...
if User.count(:login=>user.login, :email=>user.email) == 0
替换该条件。 - fguillen