私はAjaxフォームでコントローラーアピrespond_to新しいレールを使用して欲しいです。 オブジェクトがレールを検証しない場合、Jsonエラーオブジェクトを返し、 "ajax:error"イベントをトリガします。 対応するフォームフィールドの下に/それぞれのエラーを表示する(私たちは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の一部ではないはずですか?