我对 Rails 很陌生,我试图有两个部分 form_for 按钮,通过 ajax replaceWith 在单击时来回切换。
我的目标是有一个关注按钮,单击该按钮会切换为“取消关注”,并切换底层按钮操作。第一个开关效果很好(我可以在数据库中看到它经过),但是当我单击新制作的“取消关注”按钮时,不会出现相同的想法(切换到“关注”),而是打印文本我的 .js.erb 文件(但是我可以看到取消关注操作已提交到数据库)。基本上在第二次单击时不会发生正确的渲染,我很不确定为什么。
我将在下面发布一些代码,如果这不是一个好问题,我很抱歉,我在理解很多 Ajax 方法时遇到了一些麻烦。
太感谢了!丽莎
_unfollow.html.erb
<%= form_for(@user,:remote => true,method: :delete, format: 'js') do |f| %>
<%= f.submit "Unfollow", class: "btn btn-large", id: "Submit"%>
<% end %>
_follow.html.erb
<%= form_for(@user, :remote=>true, format: 'js') do |f| %>
<%= f.submit "Follow", class: "btn btn-large btn-primary", id: "Submit" %>
<% end %>
控制器调用的创建/销毁(我希望它们在上面的两个部分之间切换)
创建.js.erb
$('#Submit').replaceWith("<%= escape_javascript(raw render :partial => 'follow' )%>");
销毁.js.erb
$('#Submit').replaceWith("<%= escape_javascript(render( :partial => 'unfollow')) %>");
同样,无论我最初在页面上有哪个部分/表单,第一次点击正确切换,第二次点击 .js.erb 并将其打印出页面(插入 html)