计算视图中的总价



我是长生不老药的新手,我想做的是计算用户购物车中商品的总价,并将其显示在购物车页面中。我写了一个函数,它是我在互联网上找到的函数的混合。如果有任何帮助,我将不胜感激!

这是我的购物车的index.html.eex

<h1>Your Cart</h1>
<%= if @books do %>
<ul>
<%= for book <- @books do %>
<li>
<%= book.title %>: £<%= book.original_price %>
<%= link "X", to: Routes.cart_path(@conn, :delete, book_slug: book.slug), method: :delete %>
</li>
<% end %>
</ul>
<% else %>
<p>No books in your cart</p>
<% end %>
<%= total_price(@books) %>

和cart_view

def total_price(books) do
shipping = 5.99
price_with_shipping =
Enum.reduce(books, fn book, acc ->
%{total_amount: book.original_price + acc.total_amount + shipping}
end)
|> Map.get(:total_amount)
text = "Total amount: #{price_with_shipping}"
end

最后,它只显示这个部分——";总金额:";没有计算的运费价格。

  1. 如果您可以在视图中看到"Total amount:"部分,则视图可以
  2. <%= total_price(@books) %>应在if子句内
  3. 您要计算的是一个总数,它是一个数字,而不是地图。所以减少这个数字

也就是说,以下内容应该有效。

def total_price(books) do
shipping = 5.99
price_with_shipping =
Enum.reduce(books, 0, fn %{original_price: price}, acc ->
price + acc + shipping
end)
"Total amount: #{price_with_shipping}"
end

最新更新