У меня есть модель с адресом, городом, штатом, почтой. Я бы хотел, чтобы пользователь не заполнил ничего или заставлял их заполнять все.Rails 5 адресная форма. Либо заполните все или значение по умолчанию, если ничего не предусмотрено.
В настоящий момент пользователь может заполнить все, что захочет, только город, например, и он сохраняет.
Я хотел бы получить подтверждение, что они должны заполнить каждый столбец или ничего вообще.
Можно ли объединить проверки вместе?
Полезно добавлять проверки на стороне клиента, но если кто-то повторяет HTTP-запрос с использованием cURL или что-то в этом роде, он может ПОЧТОВИТЬ все, что захочет, и он все равно достигнет вашей базы данных. Если вы хотите быть в безопасности, вы также должны добавить подтверждения на стороне сервера. В контроллере вы можете добавить небольшой метод, например 'params.map {| k, v | v.present? } .all? 'или что-то еще и вывести' error', если не все значения. – Shiyason
@ Shiyason, его невозможно запустить завиток от клиента. Кроме того, вы не можете достичь db только с помощью HTTP-запроса, так как это будет нарушение CSRF. Его больше зависит от качества кода, написанного dev, и того, как он позаботился обо всех проверка клиента и сервера ... – Milind
Я не подразумеваю, что запрос будет отправлен от клиента/браузера. Если кто-то проверяет сетевой трафик с помощью 'chrome inspector',' mitmproxy' или какого-либо другого инструмента, он может просто изменить полезную нагрузку и повторно отправить запрос POST. В этом случае валидации на стороне клиента не помогут. Это то, что я имел в виду. Кроме того, я не хотел подразумевать, что HTTP-запросы будут обходить веб-приложение и доходить до БД. Я имею в виду без проверки на стороне сервера, данные POST пользователя просто будут сохранены в БД. – Shiyason