我有一个我自己无法找到答案的 Rails 问题。如果它非常简单或明显,我深表歉意,我在这里是一个完整的初学者。
所以我在我的数据库中有一个名为 :client_code 的列,它在模型中定义为:first_name 和:last_name 的第一个字符的小写连接。例如,如果我打开一个新表单并在 :first_name 中输入 'John',在 :last_name 中输入 'Doe',则 :client_code 会自动赋予 'jdoe' 的值。这是模型代码的相关部分:
class Client < ActiveRecord::Base
before_validation :client_code_default_format
validates_presence_of :first_name, :last_name, :email
validates_uniqueness_of :client_code
...
def client_code_default_format
self.client_code = "#{first_name[0]}#{last_name}".downcase
end
end
我想在此代码中添加一些内容,以便在有人输入具有相同确切名称的不同客户端的情况下,它不会通过唯一性验证,而是创建一个稍微修改的:client_code('jdoe2',例如)。我可能会弄清楚如何为所有这些添加索引,但我宁愿只包含数字作为在重复的情况下的故障保护。谁能指出我正确的方向?