用于order_item数量的涡轮增压框架标签在提交时更新呈现文本

turbo frame tag for order_item quantity update rendering text on submission

提问人:Luke Littler 提问时间:6/25/2023 最后编辑:Rafael MoreiraLuke Littler 更新时间:6/28/2023 访问量:153

问:

我正在尝试构建一个frame_tag,单击添加/删除订单项按钮时,仅更新订单数量。

我正在构建一个菜单系统,我有将产品添加到订单项目并从订单项目中删除产品。

在它们之间,我有数量

<% @quantity = current_order.order_items.where(product_id: 
cp.id).count %>

然后我做了一个部分

<%= render "products/quantity" %>

<p class="mt-3 float-end oi-qty" style="width: 10%;"><%= 
@quantity %></p>

我在网上尝试了几个例子,我最接近的是,当提交按钮时,以下内容显示为纯文本:

<turbo-stream action="replace" target="quantity"><template><p 
class="mt-3 float-end oi-qty" style="width: 10%;"></p>
</template></turbo-stream>

菜单:

The Menu

OrderItemsController(订单项控制器)

def create
@order_item = @order.order_items.new(order_params)
if @order.save
session[:order_id] = @order.id

render turbo_stream: turbo_stream.replace("quantity", 
  partial: 'products/quantity')
end 
end

产品页面

<%= turbo_frame_tag "quantity" do %>
<div id="quantity">
  <%= render "products/quantity" %>
</div>
<% end %>
Ruby-on-Rails Ruby TurboLinks 涡轮增压

评论

0赞 Rafael Moreira 6/25/2023
我认为你需要更好地解释你的问题是什么,以及你寻找的结果是什么。
0赞 Luke Littler 6/29/2023
@RafaelMoreira 当我单击加/减按钮时,数量会更新,但也会刷新整个页面。因此,如果客户在菜单的一半并添加了一个项目,它会将他们刷新到页面顶部。我正在努力使,当他们添加项目时,页面保持在同一个位置,但数量部分会更新数量,这样他们就可以无缝地浏览菜单,而无需每次都向下滚动
0赞 Rafael Moreira 6/29/2023
如果使用 OrderItemsController#create 调用分部,则应在此处添加 @quantity 变量。另外,这里有一个很好的链接可以帮助您解决turbo_stream:hotrails.dev/turbo-rails/turbo-frames-and-turbo-streams

答: 暂无答案