0

Sequel gem と MySQL データベースを使用してvalidates_unique検証を追加しようとしています。

column2の値がの既存の値と一致する場合、検証に失敗するようにしたいcolumn3ので、次のような (動作しない) 例:

validates_unique(:email_address){|ds| ds.where('unconfirmed_email NOT LIKE confirmed_email')}

目的の結果を得るためにこのクエリを使用したsqlfiddleを次に示します。

SELECT DISTINCT value
FROM (
  SELECT DISTINCT confirmed_email AS value FROM email_addresses
  UNION SELECT DISTINCT unconfirmed_email AS value FROM email_addresses
) AS derived

それを続編の検証にマッピングするのに苦労しています。任意のガイダンスをいただければ幸いです。

4

2 に答える 2

0

column3 にインデックスを付けて、検証対象の column2 の値をテーブルにクエリするだけです。クエリがレコードを生成する場合、検証は失敗するはずです。

于 2016-01-07T21:11:17.297 に答える