Как я предотвращаю дублирование записей в базе данных во время отправки формы и отображаю окно предупреждения и останавливаю отправку формы, если запись дублируется.
2 ответа
Вы можете добавить в свою модель проверку validates_uniqueness_of
:
class Model < ActiveRecord::Base
validates_uniqueness_of :column
end
Более идиоматический подход Rails заключается в том, чтобы иметь проверку модели для набора атрибутов и затем отображать сообщения об ошибках проверки после отправки формы. При неудачной проверке модель не сохраняется в базе данных.
В модели
validates_uniqueness_of :some_attribute
В виде формы
<% form_for @model do |f| %>
<%= f.error_messages %>
<% end %>
Если вам действительно нужно окно с предупреждением (это очень наглядный подход IMHO), вам может быть лучше использовать отправку AJAX, в которой вы подключаете отправку формы, сделайте вызов AJAX на сервер, чтобы проверить действительность формы своими собственными средствами, затем обработайте результат, возвращенный сервером. JQuery и его плагин формы сделать это относительно легко
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.