У меня есть несколько проблем с дублирующимися записями в моей базе данных, которые, по моему мнению, вызваны тем, что люди нажимают кнопку «Отправить» несколько раз.Я использую Rails 3.
Возвращать дублированный объект, а не false
Я хотел бы иметь возможность предотвратить добавление дубликатов в мою базу данных, но предпочел быэто если при сохранении дубликата был возвращен дублированный объект, а не false.Причина в том, что если кто-то нажимает кнопку «Отправить» несколько раз, я бы хотел, чтобы его перенаправили на страницу, показывающую ему элемент, который они отправили в первую очередь, а не на страницу с ошибкой.1010 *
Я определяю дубликат как элемент, в котором все поля, кроме идентификатора, одинаковы, и create_at> Time.now - 1.минута
Нет JavaScript
Я бы предпочел сделать это на стороне сервера, а не просто отключить кнопку в JavaScript, так как я не считаю целостность базы данных работой клиента.Кроме того, такое ощущение, что это должно быть сделано в модели, а не в контроллере.Я использую несколько пассажиров, поэтому в идеале любое решение должно как можно больше избегать проблем с параллелизмом.Тем не менее, несколько повторных случаев не повредят сайт.
Спасибо.