use*_*834 7 validation ruby-on-rails
是否有可能在错误消息中validate_uniqueness_of
显示id
已包含我正在检查唯一性的字段的记录?
@vimsha 的解决方案可能有效,但我找到了一种更简洁的方法,允许仍然使用validates_uniqueness_of
而不是创建自己的验证器:
validates_uniqueness_of :identifier, message: lambda{|x, y| "#{MyModel.find_by_identifier(y[:value]).id} is already taken" }
Run Code Online (Sandbox Code Playgroud)
尝试这样的事情
validate :uniqueness_of_name
def uniqueness_of_name
existing_record = Model.find_by_name(name)
unless existing_record.nil?
errors.add(:name, "Record #{existing_record.id} already has the name #{name}")
end
end
Run Code Online (Sandbox Code Playgroud)