我有一个模型
attr_accessible :name, :activity
validates :name, uniqueness: { scope: :activity }
它有效,并且不允许创建重复条目。但是使用 simple_form 它只显示:name
字段上的错误。我希望它在两个字段上都有错误,表明这个“名称”和“活动”组合已经被采用。
我在想我需要创建一个自定义验证方法,但我希望有一个更优雅的解决方案,到目前为止我已经忽略了。
有没有办法在这两个字段上显示错误?
我有一个模型
attr_accessible :name, :activity
validates :name, uniqueness: { scope: :activity }
它有效,并且不允许创建重复条目。但是使用 simple_form 它只显示:name
字段上的错误。我希望它在两个字段上都有错误,表明这个“名称”和“活动”组合已经被采用。
我在想我需要创建一个自定义验证方法,但我希望有一个更优雅的解决方案,到目前为止我已经忽略了。
有没有办法在这两个字段上显示错误?
您可以在 :activity 上添加另一个验证,以便它也将被标记为重复:
validates :activity, uniqueness: { scope: :name }
我不确定这是最优雅的解决方案,但它会为您节省自定义验证方法。
我最终做了
validates :name, uniqueness: { scope: :activity, message: 'This name and activity combination has already been taken.' }
我还没有决定是否要让它同时验证两个字段并将消息放在两个字段上,但是字段的反面:activity
是相同的。