Я не верю, validates_length_of
поддерживает динамические параметры. Вам нужно будет продублировать поведение в пользовательской проверке.
# in model
def validate
unless (5..10).member? name.length
errors.add :name, "must be within 5 to 10 characters"
end
end
Это использует статический диапазон, но вы можете легко использовать свою собственную переменную диапазона.
def validate
unless some_range.member? name.length
errors.add :name, "must be within #{some_range.first} to #{some_range.last} characters"
end
end
Возможно, вы захотите проверить мой эпизод Railscasts по условным проверкам и эпизоду 3 в моей серии ежедневных активных записей .