ユーザーの電子メール アドレスの大文字と小文字を区別しない一意性を必要とする移行で使用する適切な検証を見つけようとしています。要するに、validate :email, :uniqueness => {:case_sensitive => false}
Rails や ActiveRecord を使用するためにすべてを変換する必要がないようなものが欲しいのです。正規表現を介して電子メールを実行できましたが、その解決策は好きではありません。
使用できるというコメント[1]を見つけましたが、
validates_unique(:email){ |ds| ds.opts[:where].args.map! { |x| Sequel.function(:lower, x)}; ds}
そのコードが何をしているのか理解できず、そのds
オブジェクトが何であるか、または何が起こっているのかわからない場合は、そのコードを使用したくありません (なぜmap!
、 postgresql にはSequel.function
of があり:lower
ますか? ... おそらくですが、私にはわかりません。)
[1] http://comments.gmane.org/gmane.comp.lang.ruby.sequel/6447
だから私は2つのことのうちの1つに答える必要がありSequel.migration
ます.
- または -
2) オンラインで見つけたそのコード スニペットが実際に欲しいものである場合、それは何をし、どのように機能しますか? (ds
オブジェクトとは何ですか? この検証はデータベースに対して何を行いますか?)