0

ユーザーが 2 つの製品間の関係を破壊するボタンをクリックすると、ajax を使用してパーシャルをレンダリングしようとしています。破棄アクションは機能しますが、パーシャルのレンダリングが機能しません。

パーシャルは、製品の編集ページでレンダリングされます。

edit.html.erb

<div id="relationship_form">
  <%= render "relationships", product: @product %>
</div>

_relationships.html.erb

<%= render "unrelate", relationship: relationship %>

_unrelate.html.erb

<%= form_for(relationship,html: { method: :delete },remote: true) do |f| %>
  <%= f.submit "Remove", class: "btn btn-small" %>
<% end %>

relationship_controller.html.erb

def destroy
...
 respond_to do |format|
  format.html { redirect_to edit_product_path }
  format.js
 end
end

destroy.js.erb

$("#relationship_form").html("<%= escape_javascript(render :partial => 'products/relationships', :locals => {:product => @product}) %>");

アラートを挿入して、ajax 呼び出しが destroy.js.erb に到達することを確認したので、javascript にエラーがあるはずですか?

更新

_unrelate パーシャルのフォームを _relationship パーシャルに移動することで機能するようになりました。なぜそれが機能したのかはまだはっきりしていません。

_relationships.html.erb

<%= form_for(relationship,html: { method: :delete },remote: true) do |f| %>
  <%= f.submit "Remove", class: "btn btn-small" %>
<% end %>
4

0 に答える 0