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

0
Sachin R 9 Июл 2010 в 16:17

2 ответа

Лучший ответ

Вы можете добавить в свою модель проверку validates_uniqueness_of:

class Model < ActiveRecord::Base
  validates_uniqueness_of :column
end
0
John Topley 9 Июл 2010 в 12:27

Более идиоматический подход Rails заключается в том, чтобы иметь проверку модели для набора атрибутов и затем отображать сообщения об ошибках проверки после отправки формы. При неудачной проверке модель не сохраняется в базе данных.

В модели

validates_uniqueness_of :some_attribute

В виде формы

<% form_for @model do |f| %>
  <%= f.error_messages %>


<% end %>

Если вам действительно нужно окно с предупреждением (это очень наглядный подход IMHO), вам может быть лучше использовать отправку AJAX, в которой вы подключаете отправку формы, сделайте вызов AJAX на сервер, чтобы проверить действительность формы своими собственными средствами, затем обработайте результат, возвращенный сервером. JQuery и его плагин формы сделать это относительно легко

0
bjg 9 Июл 2010 в 12:31