Is too short (minimum is 0 characters)
In several places in the codebase we have following validations:
validates :description, length: { within: 0..255 }
validates :name,
length: { within: 0..255 },
namespace_name: true,
presence: true,
uniqueness: true
within: 0..255
produces strange error messages such as:
Is too short (minimum is 0 characters)
This happens when nil
is assigned to the field, for example when using our API (see https://gitlab.com/gitlab-org/gitlab-ce/issues/25033#note_19146246).
We could change within: 0..255
to maximum: 255
to get rid of the strange error messages. The only potential problem that I see here is that it will be possible to save records with nil
values and previously we required at least an empty string. WDYT @grzesiek?
Proposal
If the range in length validation starts with 0 (for example 0..255
) replace:
length: { within: 0..255 }
with length: { maximum: 255 }
.
Additionally, if the validated field is optional, go through the code and double check that nil
value won't cause exceptions. Previously we required an empty string so there might be cases where we call methods that are only implemented for String
class.