Rails4のAjaxでvalidatedのエラーメッセージを表示できません。
new.html.erbでAjax対応のフォームを表示し、submit時のバリデーションでOKであればrender create.js.erbし、NGであればエラーメッセージを画面に表示させたいです。
このNG時、new.js.erbはレンダリングされるのですがバリデーションのエラーメッセージが表示されない状態です。
どのような処理をすれば良いかご教示お願いいたします。
また、Ajax対応のバリデーションのエラーメッセージ表示について、上記よりスマートまたはセオリーな方法がありましたら、そちらもご教示お願いできればと思います。
###new.html.erb
<%= form_for @item, remote: true do |f| %> <p> <%= f.label "タイトル:" %><br> <%= f.text_field :title %> </p> <p> <%= f.label "備考:" %><br> <%= f.text_field :remark %> </p> <div id="result"></div> <%= f.submit "登録", data: { confirm: "登録していいですか?" } %> <% end %>
###new.js.erb
<%= @item.errors.full_messages.each do |msg| %> <li> $('#result').html("<%= j(msg) %>"); </li> <% end %>
###create.js.erb
$('#item_title').val("") $('#item_remark').val("")
###items_controller.rb
def new @item = Item.new end def create @item = Item.new(item_params) respond_to do |format| if @item.save format.html format.js else format.html format.js { render 'new' } end end end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。