WIP: Karol's implementation #1
4 changed files with 20 additions and 8 deletions
|
@ -25,6 +25,8 @@ class BooksController < ApplicationController
|
||||||
|
|
||||||
def add_to_cart
|
def add_to_cart
|
||||||
@book = Book.find(params[:id])
|
@book = Book.find(params[:id])
|
||||||
|
return unless @book.quantity.positive?
|
||||||
|
|
||||||
current_user.books << @book
|
current_user.books << @book
|
||||||
@book.decrement!(:quantity)
|
@book.decrement!(:quantity)
|
||||||
redirect_to '/books', notice: 'Book added to your cart'
|
redirect_to '/books', notice: 'Book added to your cart'
|
||||||
|
|
|
@ -1,2 +1,8 @@
|
||||||
module BooksHelper
|
module BooksHelper
|
||||||
|
def cart_summary
|
||||||
|
number_to_currency(@books.map{ |b| b.price }.reduce(:+))
|
||||||
|
end
|
||||||
|
def can_book_be_added?(book)
|
||||||
|
logged_in? && book.quantity.positive? && !current_user.books.exists?(book.id)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
<div class='container'>
|
<div class='container'>
|
||||||
<div class='row'>
|
<div class='row'>
|
||||||
<div class='col s2'>Title</div>
|
<h6 class='col s2'>Title</h6>
|
||||||
<div class='col s3'>Authors</div>
|
<h6 class='col s3'>Authors</h6>
|
||||||
<div class='col s1'>Price</div>
|
<h6 class='col s1'>Price</h6>
|
||||||
<div class='col s3'>Quantity</div>
|
<h6 class='col s3'>Quantity</h6>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<% @books.each do |book| %>
|
<% @books.each do |book| %>
|
||||||
|
@ -24,7 +24,7 @@
|
||||||
<%= book.quantity %>
|
<%= book.quantity %>
|
||||||
</div>
|
</div>
|
||||||
<div class='col s2'>
|
<div class='col s2'>
|
||||||
<% if logged_in? && book.quantity.positive? && !current_user.books.exists?(book.id) %>
|
<% if can_book_be_added?(book) %>
|
||||||
<%= link_to 'Add', "book/#{book.id}/add_to_cart", method: :post, class: "btn" %>
|
<%= link_to 'Add', "book/#{book.id}/add_to_cart", method: :post, class: "btn" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<div class='container'>
|
<div class='container'>
|
||||||
<div class='row'>
|
<div class='row'>
|
||||||
<div class='col s2'>Title</div>
|
<h6 class='col s2'>Title</h6>
|
||||||
<div class='col s3'>Authors</div>
|
<h6 class='col s3'>Authors</h6>
|
||||||
<div class='col s1'>Price</div>
|
<h6 class='col s1'>Price</h6>
|
||||||
</div>
|
</div>
|
||||||
<% @books.each do |book| %>
|
<% @books.each do |book| %>
|
||||||
<div class='row'>
|
<div class='row'>
|
||||||
|
@ -19,4 +19,8 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
<div class='row'>
|
||||||
|
<div class='col s5'><strong>Summary</strong></div>
|
||||||
|
<div class='col s1'><%= cart_summary %></div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue