We're going to build an e-commerce site! We're going to make an online store where users can browse items, put items in their carts, and buy items, which changes our inventory.
- Have just an email and password
- Should be able to log in and log out
- Also sign up
- Note: You must use the Devise gem to set up user for tests to pass.
- You may find that you're missing some seed data. Look at the error messages you get carefully and don't be surprised if you have to add some seed data
- List of available items whether you are logged in or not
- If logged in, each item should have an "Add to Cart" button
- When the user adds an item to the cart it should show them their current cart
- Users should be able to checkout from their cart
- This shows them their cart afterwards, and deducts inventory from each item
- Prices should be in the
$XX.XX
format - The Checkout process should set that current cart to a status of "submitted"
- Users should know who they are logged in as
- Users should be able to sign in/out from the navigation bar
- Users should always be able to go "home"
- If the user has a current cart, there should be a "Cart" link to their current cart
Imagine a simple dating app that tracks relationships between its users. In order to retrieve a user's current relationship from the database, it would make sense to call something like user.current_relationship
. However, Active Record doesn't intuitively understand that it should map the belongs_to :current_relationship
association to the Relationship
model (or the corresponding relationship_id
column in the database). To explicitly point it at the correct model, we can use the :class_name
and :foreign_key
attributes like so:
class User < ActiveRecord::Base
belongs_to :current_relationship, class_name: 'Relationship', foreign_key: 'relationship_id'
end
For more information, check out :class_name
and :foreign_key
in the RailsGuides entry on Active Record Associations, this StackOverflow post, and the models/post.rb
section in this SitePoint refresher.
- RailsGuides — Active Record Associations
- StackOverflow — class_name foreign_key in Rails model
- SitePoint — Brush up your knowledge of Rails associations
- Video: Lab Review
View Flatiron Store Project on Learn.co and start learning to code for free.