Jquery和AJAX在Rails 4中不能正常工作
我想在不刷新页面的情况下异步删除记录,但在单击destroy链接后,事件会被异步删除,但问题是除非刷新页面,否则记录仍会显示在屏幕上。我不知道为什么会这样。任何帮助都是值得的 控制器代码:Jquery和AJAX在Rails 4中不能正常工作,jquery,ruby-on-rails,ajax,Jquery,Ruby On Rails,Ajax,我想在不刷新页面的情况下异步删除记录,但在单击destroy链接后,事件会被异步删除,但问题是除非刷新页面,否则记录仍会显示在屏幕上。我不知道为什么会这样。任何帮助都是值得的 控制器代码: def destroy @event.destroy respond_to do |format| format.html { redirect_to events_url, notice: 'Event was successfully destroyed.' }
def destroy
@event.destroy
respond_to do |format|
format.html { redirect_to events_url, notice: 'Event was successfully destroyed.' }
format.js
end
end
查看代码:
<tbody>
<% @events.each do |event| %>
<tr>
<td><%= event.title %></td>
<td><%= event.description %></td>
<td><%= event.date %></td>
<td><%= event.start_time %></td>
<td><%= event.end_time %></td>
<td><%= event.address %></td>
<td><%= link_to 'Show', event %></td>
<td><%= link_to 'Edit', edit_event_path(event) %></td>
<td><%= link_to 'Destroy', event, method: :delete, remote: true, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</tbody>
因此,您执行了
DELETE
操作,并尝试删除destroy.js.erb
回调中的行。问题是您的表中没有id为#edit_event
的DOM
元素。您只需将
更改为:
<tr id="edit_event_<%=@event.id%>">
因此,当触发
destroy.js.erb
时,它将知道该怎么做。因此,您执行DELETE
操作,并尝试删除destroy.js.erb
回调中的行。问题是您的表中没有id为#edit_event
的DOM
元素。您只需将
更改为:
<tr id="edit_event_<%=@event.id%>">
因此,当触发
destroy.js.erb
时,它会知道该怎么做。@ArupRakshit不明白你想说什么。实际上我想在不刷新页面的情况下异步删除记录。我忽略了。。对不起,你能给我们看看你想删除的内容的HTML吗?@MurifoX我已经添加了查看代码。@ArupRakshit不明白你想说什么。实际上我想在不刷新页面的情况下异步删除记录。我忽略了。。对不起,你能给我们看看你要删除的内容的HTML吗?@MurifoX我已经添加了查看代码。
<tr id="edit_event_<%=@event.id%>">