Sequel ruby validates_unique 不区分大小写

Sequel ruby validates_unique case insensitive

我尝试使用 Sequel ORM 来验证一对(:name 和 :type)的唯一性:

def validate
    super    
    validates_unique [:name, :type]
end

但是Sequel默认是区分大小写的。我如何在不区分大小写的情况下验证这一点(不关心大写或小写)?像ActiveRecord的类似方式:

validates_uniqueness_of :name, :case_sensitive => false

不太好,但是 from the docs:

   # If you want to do a case insensitive uniqueness validation on a database that
   # is case sensitive by default, you can use:

   validates_unique :column, :where=>(proc do |ds, obj, cols|
     ds.where(cols.map do |c|
       v = obj.send(c)
       v = v.downcase if v
       [Sequel.function(:lower, c), v]
     end)
   end)