Динамическая проверка Rails - PullRequest
6 голосов
/ 03 августа 2009

Как я могу динамически настроить проверку в рельсах? Например, если у меня есть

validates_length_of :name, within => dynamic

Переменная «динамическая» будет установлена ​​пользователем. При сохранении проверка должна использовать значение переменной «dynamic» для настройки внутренней конфигурации.

1 Ответ

13 голосов
/ 03 августа 2009

Я не верю, 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 в моей серии ежедневных активных записей .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...