我试图在Rails 2.3中编写验证。
我有两个字段,让我们称之为record_id和user_id。
record_id将同时关联user_id以及Name属性。
验证应检查用户创建新记录时是否已使用Name属性。如果user_id相同但是record_id不同,则当用户尝试输入非唯一名称时,应该引发错误。
如果record_id和user_id相同且用户尝试创建已在数据库中的名称,则应允许用户使用已在使用的名称。
我对Rails 2.3相当新,所以非常感谢任何指导。
答案 0 :(得分:1)
那么......你想为每个用户允许多个名字,检查用户名是否有重复项?
validates_uniqueness_of :name, :scope => :user_id
答案 1 :(得分:0)
在数据库端的[:user_id,:name]上添加唯一索引。
validate_uniqueness会对性能造成严重影响 - 它会在任何记录上添加select创建或更新,实际上,并不能保证任何并发更新