Your Pragmatic Cart
- Pragmatic Project Automation
8.3 Iteration C2: Creating a Smarter Cart 8.1 Sessions
edit app/models/cart.rb
class Cart
attr_reader :items # <wtf linkend="wtf.attr.accessor">attr_reader</wtf>
def initialize
@items = []
end
def add_product(product)
@items << product
end
end
edit app/views/store/index.html.erb
<%= button_to 'Add to Cart', :action => 'add_to_cart', :id => product %>
edit app/controllers/store_controller.rb
def add_to_cart
product = Product.find(params[:id]) # <label id="code.depot.f.find"/>
@cart = find_cart # <label id="code.depot.f.find2"/>
@cart.add_product(product) # <label id="code.depot.f.add"/>
end
get /store/add_to_cart/2
Missing template store/add_to_cart with {:handlers=>[:rxml, :builder, :rjs, :erb, :rhtml], :formats=>[:html], :locale=>[:en, :en]} in view paths "/home/rubys/git/awdwr/edition3/work-30/depot/app/views"
edit app/views/store/add_to_cart.html.erb
<h2>Your Pragmatic Cart</h2>
<ul>
<% for item in @cart.items %>
<li><%=h item.title %></li>
<% end %>
</ul>
get /store/add_to_cart/2
get /store/add_to_cart/3