在使用`scope`验证唯一性的错误之后,在两个表单字段上显示错误

时间:2012-12-28 00:58:47

标签: ruby-on-rails-3 simple-form

我有一个

的模型
attr_accessible :name, :activity

validates :name, uniqueness: { scope: :activity }

它可以工作,不允许创建重复的条目。但是对于simple_form,它只显示:name字段上的错误。我希望它在两个字段都有错误,说这个'名称'和'活动'组合已经被采用。

我想我需要创建一个自定义验证方法,但我希望到目前为止我还忽略了一个更优雅的解决方案。

有没有办法在这两个字段上显示错误?

2 个答案:

答案 0 :(得分:1)

您可以在:activity上添加另一个验证,以便它也被标记为重复:

validates :activity, uniqueness: { scope: :name }

我不确定这是最优雅的解决方案,但它会为您节省自定义验证方法。

答案 1 :(得分:0)

我最终做了

validates :name, uniqueness: { scope: :activity, message: 'This name and activity combination has already been taken.' }

我还没有决定是否要对它们进行验证并将消息放在这两个字段上,但:activity字段的相反情况将是相同的。