Проверка уникальности поля с помощью Ajax-вызова с соответствующим сообщением в Rails 3 - PullRequest
2 голосов
/ 14 марта 2012

Я пытаюсь сделать Rails + AJAX проверки вызова , чтобы проверить уникальность поля, сканируя внутреннюю БД и возвращая соответствующее сообщение на основе результата.

Я на Rails 3.0.11.

Ваши добрые отзывы о том, что может быть лучшим способом решения этой проблемы, будут реальной помощью.

Существует ли плагин ruby ​​gem / js / jquery, который я могу использовать?

Любые ссылки на блоги, реализующие то же самое, также будут полезны ..

Спасибо.

Ответы [ 2 ]

2 голосов
/ 14 марта 2012

Почему бы не создать проверку модели так же, как в обычном запросе страницы, отправив обратно сообщение проверки через JSON в контроллер? Например, если вы хотите запретить сохранение «контакта» без уникальной электронной почты, в contact.rb добавьте

  validates :email, :uniqueness => true

и в методе create вашего контроллера вы можете сделать что-то вроде генератора скаффолдов Rails:

# POST /contacts
# POST /contacts.json
def create
  @contact = Contact.new(params[:contact])

  respond_to do |format|
    if @contact.save
      format.html { redirect_to @contact, notice: 'Contact was successfully created.' }
      format.json { render json: @contact, status: :created, location: @contact }
    else
      format.html { render action: "new" }
      format.json { render json: @contact.errors, status: :unprocessable_entity }
    end
  end
end

Ваш javascript будет затем проверять на status и отвечать соответственно.

(Примечание: это то, что создает генератор скаффолдов Rails 3.2, 3.0 все же сделал format.xml Я думаю. Я не думаю, что есть какое-то существенное отличие, кроме этого изменения.)

0 голосов
/ 03 апреля 2012

Возможно, вы захотите взглянуть на клиентские проверки Gem.

На нем есть хороший Railscast http://railscasts.com/episodes/263-client-side-validations

...