Почему бы не создать проверку модели так же, как в обычном запросе страницы, отправив обратно сообщение проверки через 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
Я думаю. Я не думаю, что есть какое-то существенное отличие, кроме этого изменения.)