Skip to content

Instantly share code, notes, and snippets.

@matt297
Last active June 7, 2017 23:08
Show Gist options
  • Save matt297/b9b72ffe803f1e3ab2b7b15d33943905 to your computer and use it in GitHub Desktop.
Save matt297/b9b72ffe803f1e3ab2b7b15d33943905 to your computer and use it in GitHub Desktop.
Lighthouse Labs - Intro to Web Dev - W4D2 - May 2017 Cohort

app/views/cart_view.erb

<%= erb(:cart_item, locals: { number: 1 }) %>
<%= erb(:cart_item, locals: { number: 2 }) %>
<%= erb(:cart_item, locals: { number: 3 }) %>

app/views/cart_item.erb

<p>
  <h1>Item <%= number %></h1>
  <h2>In my cart? <%= @items.include?(number.to_s) %></h2>
  <a href="/cart-add/<%= number %>">Add</a><a href="/cart-remove/<%= number %>">Remove</a>
</p>

app/actions.rb

get '/cart-add/:item_number' do
  session[:items] << params[:item_number]
  redirect '/cart-view'
end

get '/cart-remove/:item_number' do
  session[:items].delete(params[:item_number])
  redirect '/cart-view'
end

get '/cart-clear' do
  session[:items] = []
  redirect '/cart-view'
end

get '/cart-view' do
  # If cart is blank, set it equal to an empty array
  session[:items] ||= []
  
  # Create an instance variable that we can use in our view to reference the users cart
  @items = session[:items]
  
  # Render our products/cart page
  erb(:cart_view)
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment