如何定义属性在给定范围内应该是唯一的?

时间:2014-10-16 00:00:50

标签: ruby-on-rails activerecord

我有一组作者,每个作者都有一个唯一的名字。这种唯一性验证非常简单。

每位作者都应该有很多故事,每个故事都要求作者必须具有独特的标题。因此,只要两个故事由不同的作者撰写,那么两个故事具有相同的标题是完全合法的。同一作者共享一个标题的两个故事是非法的。

我无法使用validates :title, :uniqueness=>true,因为我不能拥有两位不同作者共享的相同标题。我是否需要编写一个自定义验证器来迭代作者的每个标题,或者有更好的选择吗?

1 个答案:

答案 0 :(得分:1)

在唯一性验证器上使用范围选项:

validates :title, uniqueness: {scope: :author_id}