У меня есть модель с именем Calendar
.
Проверки, которые будут применены к нему, зависят от выбора, сделанного пользователем.
Я знаю, что могу использовать пользовательскую проверку + условную проверку, чтобы сделать это, но мне это не кажется чистым.
Интересно, смогу ли я сохранить его в столбце базы данных и передать его "универсальному" методу проверки.
Что ты думаешь?
Объясняя далее:
У пользователя есть календарь.
Другие пользователи, имеющие доступ к этому календарю, могут планировать встречи.
Чтобы назначить встречу, приложение должно пройти проверку в соответствии с правилами, установленными владельцем календаря.
Есть много комбинаций, так что я пришел к следующему:
Создайте пользовательские классы валидаторов для каждой из возможных проверок и сделайте затем условными.
class Calendar
validate_allowed_in_hollydays :appointment_date if :allowedinhollydays?
(tenths of other cases)
...
end
Это работает, но чувствует себя не так.
Я думаю о том, чтобы где-то сохранить, какие правила следует применить к этому календарю, а затем сделать что-то вроде:
validate_stored_rules :appointment_date