gpt4 book ai didi

javascript - Rails AJAX Destroy - 重新渲染索引问题

转载 作者:行者123 更新时间:2023-11-30 12:05:24 28 4
gpt4 key购买 nike

我有一个 Rails AJAX 应用程序的问题,这让我很困惑,尽管它看起来很简单!我在一个简单的销售点 Rails 应用程序中处理 class Order。正在发出请求,因为订单将在页面刷新时被删除(但我没有刷新 @orders),因为我认为我在 destroy.js.erb.

订单/index.html

<div id="orders">
<%= render 'orders/index' %>
</div>

<%= link_to 'New Order', new_order_path, remote: true %>
<div id="order-form" style="display:none;"></div>

订单/_index.html

<% if @orders.any? %>
<% @orders.each do |order| %>
<%= link_to "Show #{order.id}", order_path(order), class: "something" %>
<%= link_to "Delete #{order.id}", order_path(order), method: :delete, class: "something" %>
<%= link_to "Delete order with ajax", order_path(order), remote: true, method: :delete %>
<% end %>
<% else %>
<p>No orders yet</p>
<% end %>

销毁.js.erb

//When deleting order on order index - render orders again.
$('#orders').html("<%= j (render 'orders/index') %>");

以及来自 orders_controller.rb

的相关操作
class OrdersController < ApplicationController
respond_to :html, :js

def index
@orders = Order.paginate(page: params[:page])
if params[:search]
@orders = Order.search(params[:search]).order("created_at DESC")
else
@orders = Order.all.order('created_at DESC')
end
end

def destroy
@order = Order.find(params[:id])
if @order.destroy
flash[:notices] = ["Order was successfully deleted"]
redirect_to orders_path
else
flash[:notices] = ["Order could not be deleted"]
render order_path(@order)
end
end

我怀疑问题出在我的 orders_controller destroy 或 index 操作中,但我不太清楚在 Rails 中使用 AJAX 的许多方法。

repo 链接 - https://github.com/benhawker/point-of-sale-rails

最佳答案

可能是因为在你销毁之后你重定向到索引路径

关于javascript - Rails AJAX Destroy - 重新渲染索引问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35360583/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com