【发布时间】:2015-07-04 12:49:20
【问题描述】:
用户可以在我的数据库中创建学生。现在,我对 first_name 和 last_name 的存在进行了模型验证。我的学生模型中有一个用于 full_name 的方法。
def full_name
"#{first_name} #{last_name}"
end
我想知道我必须做些什么来要求 full_name 的唯一性而不限制名字或姓氏。我希望能够拥有汤姆·史密斯、汤姆·威尔逊、汤姆·克兰西,而不是汤姆·史密斯的错误重入。
【问题讨论】:
-
那么从设计的角度来看,您确定要这样做吗?您不仅不能拥有两个 Tom Smith,而且通过主动模型验证,每次更改姓名都需要加载其他所有人的名字和姓氏,以便与他们进行字符串比较。
-
尝试在 first_name 和 last_name 列上添加唯一索引 - 请参阅 stackoverflow.com/questions/4123610/…
-
只是一个想法。可能有 2 个 Tom Smiths,或者 3 个。名称不是唯一的。
标签: ruby-on-rails validation ruby-on-rails-4 activerecord model