Ruby on rails 3 -在验证' scope '唯一性错误后显示两个表单字段的错误



我有一个模型

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

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

我想我需要创建一个自定义验证方法,但我希望有一个更优雅的解决方案,我一直忽略了。

是否有一种方法来显示这两个字段的错误?

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

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

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

我最后做了

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

我还没有决定是否要让它同时验证并将消息放在两个字段上,但是:activity字段的相反方向是相同的。

最新更新