Избегайте многократного обновления в одной форме с рельсами 3 - PullRequest
1 голос
/ 31 января 2012

В моем проекте рельсы имеют CRUD для пользователей, когда я нахожусь в режиме редактирования в двух разных браузерах, обновляю одного пользователя с измененными значениями, а в другом браузере могу обновлять пользователя, не зная, что если он был изменен.

Как можно избежать этого поведения? с токеном CRSF в форме?

Большое спасибо Приветствие!

1 Ответ

1 голос
/ 31 января 2012

Я не думаю, что токен CSRF - это то, что вы хотите.Одним из способов будет хэширование свойств, которые форма может изменить, и рендеринг этого хэша в форму в скрытом поле.(См. http://www.ruby -doc.org / stdlib-1.9.3 / libdoc / digest / rdoc / Digest.html для создания хэша.) Когда форма отправлена ​​и до того, как вы обновили моделисвойства из формы, сравните хеш, представленный формой, с хешем тех же свойств в модели, которую вы собираетесь обновить.Если они совпадают, это означает, что модель не изменилась с момента рендеринга формы.

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

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