【问题标题】:refreshing part of the page with a partial in rails刷新页面的一部分,部分在 rails
【发布时间】:2021-01-15 13:53:16
【问题描述】:

我有一个包含物品的购物车,在结帐页面中,这些物品可以是评论并且它们的数量可以更改。我想添加一个按钮,单击该按钮将刷新呈现购物车的部分,从而更新总数等。 我已经创建了按钮,它改变了它应该的 innerHtml(当我用 ("test") 而不是 测试它时,但是它不会更新购物车(重新加载部分)。 这是我的代码

路线 get 'refresh_cart', to: 'carts#refresh'

控制器

def refresh
    @cart = Cart.find_by(user_id: current_user.id)
    respond_to do |format|
      format.js  {}
    end
  end

html

<div class="container-fluid cart-submit" id="cart-item-partial">
  <%= render 'cartItems' %>
</div>

刷新.js.erb

cart_items = document.getElementById("cart-item-partial")
cart_items.innerHTML = <%= j render 'cartItems'%>

【问题讨论】:

  • 另外,当我单击“刷新”按钮时,我接到了对服务器的呼叫。 ``` 在 2021 年 1 月 15 日 11:00:23 -0300 为 ::1 发送 GET "/refresh_cart" 由 CartsController#refresh as JS 处理 .... ↳ app/helpers/products_helper.rb:22:in ` quantity_helper' 渲染的购物车/_cartSubtotal.html.erb(持续时间:0.1ms | 分配:30)渲染的购物车/_cartItems.html.erb(持续时间:32.7ms | 分配:10441)渲染的购物车/refresh.js.erb(持续时间:34.3 ms | Allocations: 11239) Completed 200 OK in 42ms (Views: 33.8ms | ActiveRecord: 3.3ms | Allocations: 1) ``` 但是页面没有改变

标签: javascript html ruby-on-rails


【解决方案1】:

所以,如果你已经被困了几个小时(就像我一样),问题是你必须用双引号括住 j 渲染语句

cart_items.innerHTML = &lt;%= j render 'cartItems'%&gt;

应该是

cart_items.innerHTML = "&lt;%= j render 'cartItems'%&gt;"

【讨论】:

    猜你喜欢
    • 2011-09-23
    • 2013-10-28
    • 1970-01-01
    • 2015-12-22
    • 2013-07-27
    相关资源
    最近更新 更多