Prep C9 (no hidden folders) ######### ###1. create git repo called sinatra-notebook ###2. clone, cd into dir ###3. bundle init ##4. Gems
source "http://rubygems.org"
gem 'sinatra'
gem 'activerecord'
gem 'sinatra-activerecord'
gem 'rake'
gem 'bcrypt'
group :development do
gem 'pry'
gem 'pry-nav'
gem 'sqlite3'
gem 'tux'
gem 'shotgun'
endmkdir app
mkdir app/controllers
mkdir app/models
mkdir app/views
mkdir db
mkdir public
mkdir public/css
mkdir public/js
mkdir public/images##6. Environment
mkdir config
touch config/environment.rbrequire 'bundler'
Bundler.require
configure :development do
set :database, "sqlite3:db/notebook.db"
end##7. create ApplicationController
require './config/environment'
class ApplicationController < Sinatra::Base
get '/'do
"Hello, World."
end
endtouch config.ru
require './app/controllers/application_controller'
run ApplicationControllertouch Rakefilerequire 'sinatra/activerecord/rake'
require './config/environment'#Part 2 Models
####New Branch - Models
git checkout -b models####Create teacher.rb, student.rb, lesson.rb
class Teacher < ActiveRecord::Base
end
#TEACHER
has_many :students
has_many :lessons, through: :students
#STUDENT
has_many :lessons
belongs_to :teacher
#LESSON
belongs_to :studentGemfile -> gem 'require_all'
In envirnonment.rb
(fix development)
require_all 'app'
create three migrations add columns according to form add foreign keys
rake migrate show schema
tux Create a Teacher Create a Student Create a Lesson