我有一个模型
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
字段的相反方向是相同的。