我有这个控制器响应表单发出的ajax调用 控制器:
if @invite.save
respond_to do |format|
format.html do
flash[:success] = "Friend invited with success"
redirect_to event
end
format.js
end
else
flash[:danger] = "Failed to create invite"
redirect_to request.referer || events_path
end
形式:
<%= form_for(:invite, url: invites_path, method: 'post', html: {class: "form-inline"}, remote: true ) do |f| %>
<%= f.hidden_field :event_id, :value => event_id %>
<div class="form-group">
<%= f.label :email, "Email:" %>
<%= f.text_field :email, class: "form-control" %>
</div>
<div class="form-group">
<%= f.submit "Invite", class: "btn btn-primary" %>
</div>
<% end %>
回复:
$("#invites").append("<li> <%= @invite.attendee.email %> - Pending - <%= link_to 'Confirm your presence', confirmation_path(@invite), method: 'post'%> </li>");
此响应不起作用,每次单击“提交”按钮时都没有任何反应,当我查看rails或chrome控制台时,没有错误消息。 但我试图删除link_to标记,并开始工作正常。如何使用link_to获得响应?
答案 0 :(得分:0)
当您致电@invite.save
但是您没有任何错误处理来查看错误时,可能会发生错误。为了帮助您进行调试,请将该行更改为@invite.save!
,以便在发生错误时出现异常,并且您应该在日志文件中看到详细信息。
帮助您调试ajax响应的另一个技巧是删除所有jquery和ERB代码,以确保您的响应甚至被渲染。将您的回复js.erb更改为:
console.log('successful response');
尝试这两件事,如果您的日志文件中没有任何内容且Chrome控制台中没有“成功响应”,请告诉我们,我们可以尝试其他操作。