的uniquness验证我用Rails 4.2.1和4.0.0 MongoidMongoid +轨道4 - 实现用户与以下:嵌入模型
我有一个User
模型,该模型嵌入Following
模型。我想达到的效果是:
{
username: # This is the id
...
followings: [
{
_id:
username:
datetime:
}
]
}
我不想做followings
包含使用同一用户名的条目。如何实现这一目标?
我已经尝试了两种方法:
我把
validates :username, presence: true, uniqueness: true
代码为Following
模型。但是这个验证是全球性的 - 如果我把John和Sam当作两个用户,并且John跟随Sam,那么当Sam想要跟随John时,就会出现重复错误。我在
User
模型增加了一个指标:index ({ 'followings.username': 1 }, { unique: true, drop_dups: true })
这种方法的问题是,当我创建一个用户John,他在以下领域将拥有一个用户名null
,然后如果我创建一个用户山姆,抛出一个错误,因为null
用户名重复:E11000 duplicate key error index: myapp_development.users.$followings.username_1 dup key: { : null }
真的很感谢所有帮助