- Link to a shopping cart
- <% if current_cart.line_items.empty?%>
- <%= link_to "cart", cart_path, :class =>'headertab' %>
- <% else %>
- <%= link_to "cart", cart_path(current_cart), :class =>'headertab' %>
- <% end %>
- Showing /Users/dave/rails_projects/EquiptMe/app/views/layouts/_headerexterior.html.erb where line #20 raised:
- undefined local variable or method `current_cart' for #<#<Class:0x007fae841cc8e0>:0x007fae83339698>
- Extracted source (around line #20):
- 17: <li><%= link_to "browse gear", '/gear', :class =>'headertab' %></li>
- 18: <li><%= link_to "join", '/signup', :class =>'headertab' %></li>
- 19: <li>
- 20: <% if current_cart.line_items.empty?%>
- 21: <%= link_to "cart", cart_path, :class =>'headertab' %>
- 22: <% else %>
- 23: <%= link_to "cart", cart_path(current_cart), :class =>'headertab' %>
- Outdoor::Application.routes.draw do
- resources :line_items
- resources :carts
- .....
- class ApplicationController < ActionController::Base
- protect_from_forgery
- private
- def current_cart
- Cart.find(session[:cart_id])
- rescue ActiveRecord::RecordNotFound
- cart = Cart.create
- session[:cart_id] = cart.id
- cart
- end
- end
- def show
- begin
- @cart = Cart.find(params[:id])
- rescue ActiveRecord::RecordNotFound
- logger.error "Attempt to access invalid cart #{params[:id]}"
- redirect_to '/gear', notice: 'Invalid cart'
- else
- respond_to do |format|
- format.html # show.html.erb
- format.json { render json: @cart }
- end
- end
- def destroy
- @cart = current_cart
- @cart.destroy
- session[:cart_id] = nil
- respond_to do |format|
- format.html { redirect_to carts_url, notice: 'Your cart is currently empty' }
- format.json { head :no_content }
- end
- end
- def create
- @cart = Cart.new(params[:cart])
- respond_to do |format|
- if @cart.save
- format.html { redirect_to @cart, notice: 'Cart was successfully created.' }
- format.json { render json: @cart, status: :created, location: @cart }
- else
- format.html { render action: "new" }
- format.json { render json: @cart.errors, status: :unprocessable_entity }
- end
- end
- end
- def create
- @cart = current_cart
- gear = Gear.find(params[:gear_id])
- @line_item = @cart.add_gear(gear.id)
- respond_to do |format|
- if @line_item.save
- format.html { redirect_to @line_item.cart }
- format.json { render json: @line_item, status: :created, location: @line_item }
- else
- format.html { render action: "new" }
- format.json { render json: @line_item.errors, status: :unprocessable_entity }
- end
- end
- end
- end
- <%= link_to "my cart", cart_path(current_cart), :class =>'headertab' %>
- class ApplicationController < ActionController::Base
- protect_from_forgery
- private
- def current_cart
- Cart.find(session[:cart_id])
- rescue ActiveRecord::RecordNotFound
- cart = Cart.create
- session[:cart_id] = cart.id
- cart
- end
- helper_method :current_cart
- end