我有类似的东西:
class User
include DataMapper::Resource
property :id, Serial
property :username, String, :unique => true
end
post '/signup' do
user = User.create(username: params['username'])
if user.save
puts "New user was created"
else
puts user.errors
end
end
参数:unique => true
区分大小写。它不会阻止使用用户名“admin”和“Admin”创建用户。如何验证不区分大小写的用户名唯一,并使用已下载的用户名属性,以便用户可以选择用户名。
答案 0 :(得分:1)
您可以提供自己的custom validation:
class User
include DataMapper::Resource
property :id, Serial
property :username, String
validates_with_method :username,
:method => :case_insensitive_unique_username
def case_insensitive_unique_username
User.first(conditions: ["username ILIKE ?", self.username]).nil?
end
end
请注意,ILIKE
仅适用于PostgreSQL,您必须了解如何使用您的特定适配器不敏感地查找记录。