カート一覧ページを作成しています
現在のビューページが写真のようになっています
商品名が同じ場合、数量を合計して表示させたいのですが記載方法がわかりません
考えたのはモデルに足し算のメソッドを書いてviewに呼び出すのかと思ったのですが、その方法を調べてもわかりませんでした。
カート一覧のviewは
<table class="table"> <thead> <tr> <th>商品名</th> <th>単価(税込)</th> <th>数量</th> <th>小計</th> </tr> </thead> <tbody> <% @carts.each do |cart| %> <tr> <td><%= cart.item.name %></td> <td><%= cart.item.price %></td> <%= form_for(cart, url:cart_path(cart),method: :patch) do |f| %> <% sub_total = cart.count.to_i + cart.count.to_i %></table><td><%= sub_total %></td> <td> <%= f.select :count,(1..50) %> <%= f.submit "変更する"%> <% end %> </td> <td>¥<% @sum_price %></td> <td><%= link_to "削除する", cart_path(cart.id), method: :delete %></td> </tr> <% end %> </tbody>
カートコントローラには
def index
@carts = Cart.all
@cart = Cart.where(user_id: current_user.id)
@sum_price = Cart.sum_price
end
def create
cart = Cart.new(cart_params)
cart.user_id = current_user.id
cart.save
redirect_to carts_path
end
カートモデルには
def self.sum_price
array = [] #空の配列を用意し、 Item.all.each do |item| array << item.price end array.sum #ここで合計を求める
end
このように書いています。
rails初心者のため、訳のわからないことを書いてるかもしれませんがご教示ください。
あなたの回答
tips
プレビュー