我想一個很好的例子如何軌的respond_to與模型驗證錯誤和Ajax的形式工作
我使用的respond_to控制器的API新軌與阿賈克斯的形式是什麼。 如果對象不驗證軌道返回一個JSON錯誤對象,並觸發「AJAX:錯誤」事件。 我想顯示下一個/相應的表單字段下(我們使用formatastic)每個錯誤。
這裏我的實施例..
控制器:
class Admin::PrivateMessagesController < AdminController
respond_to :json
def create
private_message = PrivateMessage.new(params[:private_message])
private_message.save
respond_with private_message
end
end
視圖
<%= form_for @private_message, :remote => true, :html => {"data-type" => "json"} do |f|
f.input :body
...
end %>
JS/CoffeeScript的
個我只是添加所有錯誤爲字符串,並告訴他們..
$("#new_private_message").on 'ajax:error', (event, data, status) ->
error = "Errors: "
$.each $.parseJSON(data.responseText), (field, errorMessage) ->
error += "#{field}-#{errorMessage} "
$('#errors').html(error)
JSON錯誤對象
{"body":["Please enter a message."],"subject":["Please enter a message."]}
我的問題!
- 我必須自己解析json嗎?
- 我如何添加錯誤消息到外地?
- 豈不是標準的jQuery-UJS的一部分?