У меня есть таблица под названием meeting
с этими полями {attr1, attr2, ..., start_time, end_time}
- У меня есть форма для создания нескольких встреч, эта форма отправляет параметр в сервер, подобный этому
{
attr1: ...
attr2: ...
...
schedules: [
{start_time: ..., end_time: ...},
{start_time: ..., end_time: ...},
...
]
}
, тогда на сервере будет создано N x meeting
записей.
Прямо сейчас я создаю новый файл модели только для проверки и сохранения этих meeting
записей, контроллер вернет это, если у него есть ошибки при проверке:
errors: {
attr1: ["some errors msg"],
attr2: ["some errors msg"],
...
schedules: [
{start_time: ["some errors msg"], end_time: ["some errors msg"]},
{start_time: ["some errors msg"], end_time: ["some errors msg"]},
...
]
}
- Затем у меня также есть форма для редактирования одного
meeting
, он отправит такой параметр на сервер
{
id:..
attr1: ...
attr2: ...
start_time: ...
end_time: ...
}
, и я хочу, чтобы сервер возвращал это, если есть ошибка
errors: {
attr1: ["some errors msg"]
attr2: ["some errors msg"]
start_time: ["some errors msg"]
end_time: ["some errors msg"]
}
Теперь я хочу использовать тот же файл модели, который я только что создал, чтобы проверить это тоже . Как лучше всего это сделать? Прямо сейчас я просто проверяю
- , если в param есть ключ
schedules
, затем проверяю attr1
, attr2
, а затем проверяю каждое значение schedules
и ответ об ошибках сборки - если ключ
schedules
не включен в параметр, тогда проверьте attr1
, attr2
, start_time
, end_time
, .. затем создайте другой ответ об ошибках
with_options schedules_in_params? do
validate :schedules
end
with_options schedules_not_in_params? do
validate :start_time ..
validate :end_time ..
...
end
таким образом мне нужно продублировать свой код для проверки start_time
, end_time
как лучше это сделать?