3

我正在尝试使用以 riak 作为数据库的设计来创建身份验证。我为相同的https://github.com/frank06/devise-ripple找到了一个 ORM 策略,它确实可以正常工作,除了当我尝试使用数据库中已经存在的电子邮件进行注册时它没有提供错误消息,而不是覆盖当前数据并更新它。我发现的问题是,ripple 处理 .save() 的方式与活动记录不同,即当活动记录抛出并且错误 Ripple 只是覆盖它时。

4

2 回答 2

3

由于 Riak 没有唯一字段的概念,因此您必须检查堆栈的应用程序级别的唯一性。

我这样做的方式是快速 m/r 功能,甚至是 search/2i 检查具有您正在验证的电子邮件值的文档的数量。高于 0 的所有内容显然都是失败的验证。

于 2012-01-11T01:34:01.170 回答
1

根据您使用密钥的方式,您可以将密钥设置为电子邮件地址的哈希值。

检查该特定条目的存在将与请求该特定文档一样简单,应该比 map/reduce 或搜索快得多。

于 2012-03-13T09:03:47.643 回答