アイテムを一覧表示するページがあります。各アイテムの下に、そのアイテムのコメントが一覧表示されます(コメントはアイテムの下にネストされたリソースです)。
アイテムページにインラインで新しいコメントを追加できます。それを行うと、ページ全体がリロードされていたので、Ajaxを使用するように変更し、jQueryを使用してコメントを挿入します。
そこで、comments / _form.html.erbを:remote=>trueを使用するように変更しました
<%= form_for([@item,@comment], :remote=>true) do |f| %>
私はcomments_controllerにformat.jsを追加しました:
def create
@comment = Comment.new(params[:comment])
@comment.save
respond_to do |format|
format.js
format.html { redirect_to items_path}
end
end
そして、ページに新しいコメントを挿入するための簡単なcomments/create.js.erbを作成しました。
$("#comments").append("<%= j(render(@comment)) %>");
ただし、コメントを送信すると(フォームに:remote => trueが含まれている場合でも)、ページ全体がリロードされ続け、.jsファイルが無視されます。
そこで、respond_toからformat.htmlを削除しました(そのオプションを使用したくないため)が、エラーが発生しますCompleted 406 Not Acceptable in 4ms(ActiveRecord:0.2ms)
現在のページにとどまり、create.jsで応答するにはどうすればよいですか?