0

私は2つの異なるデバイスモデルを持っています。両方のテーブルに同じ電子メールが含まれていないことを確認するにはどうすればよいですか? この方向の助けをいただければ幸いです。

コントローラーのメソッドをオーバーライドできるのではないかと考えていましたが、?

ありがとう

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 に答える