我试图找出一个很好的验证来在我的迁移中使用,这将需要用户电子邮件地址的不区分大小写的唯一性。简而言之,我想要一些东西,validate :email, :uniqueness => {:case_sensitive => false}
而不必将所有东西都转换为使用 Rails 或 ActiveRecord。我可以通过正则表达式运行电子邮件,但我不喜欢那个解决方案。
我发现一条评论 [1] 说您可以使用,但我不明白该代码在做什么,并且当我不知道该对象是什么或发生了
validates_unique(:email){ |ds| ds.opts[:where].args.map! { |x| Sequel.function(:lower, x)}; ds}
什么时,我不想使用该代码(为什么, postgresql 有of吗? ...可能,但我只是不知道。)ds
map!
Sequel.function
:lower
[1] http://comments.gmane.org/gmane.comp.lang.ruby.sequel/6447
所以我需要回答两件事之一:
1)如何在纯Sequel.migration
(没有ActiveRecord,没有Rails)中执行不区分大小写的唯一性验证?
- 或者 -
2) 如果我在网上找到的代码片段实际上是我想要的,它是做什么的以及它是如何工作的?(ds
对象是什么,这个验证对我的数据库有什么作用?)