与设计的波纹

时间:2011-10-25 10:38:47

标签: ruby-on-rails ruby riak

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

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

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

检查该特定条目是否存在就像请求该特定文档一样简单,应该比map / reduce或search快得多。