私が欲しいもの
新しい Rails Respond_to Controller Api を ajax フォームで使用します。オブジェクトがレールを検証しない場合、Json エラー オブジェクトが返され、「ajax:error」イベントがトリガーされます。各エラーを対応するフォーム フィールドの横/下に表示したい (フォーマットを使用しています)。
ここで私の例..
コントローラ:
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/コーヒースクリプト
すべてのエラーを文字列に追加して表示するだけです..
$("#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の一部ではないでしょうか?