ruby-on-rails 修改Solidis中的Cart按钮

zwghvu4y  于 2023-05-02  发布在  Ruby
关注(0)|答案(1)|浏览(118)

使用宝石solidus 3.1.8
我想修改购物车按钮上的主导航栏不包括钱,只显示数量。

`  Spree.fetch_cart('<%= j spree.cart_link_path %>')`

https://github.com/solidusio/solidus_frontend/blob/master/app/assets/javascripts/spree/frontend/cart.js

`Spree.fetch_cart = function(cartLinkUrl) {
  Spree.ajax({
    url: cartLinkUrl || Spree.pathFor("cart_link"),
    success: function(data) {
      $("#link-to-cart").html(data);
    }
  });
};`

在这段代码中,data返回html代码,如下所示:

`<a class="cart-info full" href="/cart">Cart: (1)  <span class='amount'><span class="money-currency-symbol">$</span><span class="money-whole">925</span><span class="money-decimal-mark">.</span><span class="money-decimal">15</span></span></a>`

我似乎无法追踪数据是从哪里生成的,以便进行覆盖。

nue99wik

nue99wik1#

我终于发现html代码是由/core/app/helpers/spree/base_helper返回的。RB

def link_to_cart(text = nil)
  text = text ? h(text) : t('spree.cart')
  css_class = nil

  if current_order.nil? || current_order.item_count.zero?
    text = "#{text}: (#{t('spree.empty')})"
    css_class = 'empty'
  else
    text = "#{text}: (#{current_order.item_count})  <span class='amount'>#{current_order.display_total.to_html}</span>"
    css_class = 'full'
  end

  link_to text.html_safe, spree.cart_path, class: "cart-info #{css_class}"
end

我把这个和创建我自己的助手修改的html,因为我需要然后修改的main_nav_bar使用我的助手代替

相关问题