Rails + React + проверки в реальном времени - PullRequest
0 голосов
/ 31 августа 2018

У меня есть рельсы 5+, реагируют на применение В этом приложении я хотел бы ввести проверку.

Допустим, у меня есть модель продукта, цена которой должна быть больше 0 и меньше 5 или равна 20.

У меня есть 2 случая, когда я проверю модель продукта при создании:

  1. Когда все подано. Я проверю в rails и отправлю сообщение обратно, чтобы прореагировать, сообщив реагирующей части, что да, все в порядке 200, или нет, эта сущность не в порядке 422 + ошибки в формате json, которые могут быть сопоставлены с полями формы
  2. Когда пользователь на самом деле печатает. Допустим, пользователь вводит 55 по цене, превышающей 20, поэтому я хочу немедленно показать, что введенная цена недействительна.

Мне обоим очень ясно, как их делать. У меня есть некоторые проверки в режиме реального времени на стороне реакции для формы и некоторые проверки бэкэнда, которые ожидают отправки формы. Проблема в том, что у меня должны быть данные проверки (в данном случае числа 0, 5, 20) как в реакции, так и в рельсах.

Я думал, что, может быть, я смогу поместить эти «магические» числа в файл yml и экспортировать их для реакции.

Это правильный подход? У кого-нибудь есть лучшее представление о том, как хранить эти значения, которые должны быть как в реакции, так и в рельсах?

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Передайте свои проверки React в качестве реквизитов или атрибутов данных, если ваше приложение Rails обслуживает HTML, или в JSON, если это одностраничное приложение (SPA).

Продолжать проверку на стороне сервера, так как выполнять проверку только на стороне клиента опасно, поскольку ее можно обойти прямыми вызовами на сервер.

Если вы передаете JSON с ограничениями, вы можете рассмотреть структуру, которая имитирует доступные html5-атрибуты проверки или ваши пользовательские имена проверки.

{
  "product": {
    "attributes": {
      "name": {
        "type":"string",
        "pattern":"[A-Za-z]",
      },
      "price": {
        "type":"decimal",
        "max":"20.00",
        "min":"5.00",
      },
    }
  }
}
0 голосов
/ 31 августа 2018

Если вы используете систему форм, такую ​​как Formik, вы можете предоставить сценарий динамической проверки по ssr. В любом случае обычным способом управления этим является разделение проверки

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