0

我有两种不同的设计模型。我想知道,我怎样才能确保两个表没有相同的电子邮件?对此方向的任何帮助表示赞赏。

我在想也许我可以覆盖控制器方法,但是?

谢谢

4

1 回答 1

1

恐怕唯一性约束适用于限制模型及其属性范围。我仍然通过 API 检查是否存在替代方案;但找不到。

基于此,我认为您应该为此编写自己的自定义验证方法。

validate :email, :with_user_emails
def with_user_emails
  if User.pluck(:email).any? { |user_email| user_email.eql? email.downcase }
    errors.add(:email, "Same email id present in User database")
  end
end

我知道这在性能上肯定很差并且没有优化。希望看到专家的好解决方案:)

于 2013-05-16T18:04:53.060 回答