create an empty project and add a Gemfile
cd ~/Desktop
mkdir project-name
cd project-name
touch Gemfile# Gemfile
source 'https://rubygems.org'
gem 'activerecord'
gem 'sinatra-activerecord'
gem 'sqlite3'
gem 'rake'Install the dependencies
bundle installCreate an app.rb file
# app.rb
require 'sinatra'
require 'sinatra/activerecord'
set :database, "sqlite3:project-name.sqlite3"Create a Rakefile
# Rakefile
require 'sinatra/activerecord/rake'
require './app'Create a migration for creating a users table
rake db:create_migration NAME=create_users_tableAdd code to the migration for creating columns
class CreateUsersTable < ActiveRecord::Migration[5.0]
  def change
    create_table :users do |t|
      t.string :fname
      t.string :lname
      t.string :email
      t.datetime :created_at
      t.datetime :updated_at
    end
  end
endRun the migration
rake db:migrateCreate a User model
# models.rb
class User < ActiveRecord::Base
endLoad the User model into your app
# at the bottom of app.rb
require './models'Create a seeds file
touch db/seeds.rbWrite some seeds
# db/seeds.rb
users = [
  {fname: 'Jon', lname: 'Doe', email: '[email protected]'},
  {fname: 'Jane', lname: 'Doe', email: '[email protected]'}
]
users.each do |u|
  User.create(u)
endRun the seeds
rake db:seedCreate an index.erb file in a views directory (views/index.erb)
<!DOCTYPE html>
<html>
<head>
    <title>Users</title>
</head>
<body>
    <ul>
        <% @users.each do |user| %>
            <li><%= user.email %></li>
        <% end %>
    </ul>
</body>
</html>Create a route for the home page
# app.rb
get '/' do
  @users = User.all
  erb :index
end- Create migration with rake
- Populate the migration with code for adding columns
- Run the migration with rake db:migrate
- Create the model (add class to models file)
- Add some rows to the table with IRB
- Create a route and a view for displaying records
hello, thanks for the post, I have following the instruction, but get this error when running ruby app.rb and accessing localhost
D, [2021-08-10T14:21:48.169884 #17552] DEBUG -- : (2.3ms) SELECT sqlite_version()
D, [2021-08-10T14:21:48.171606 #17552] DEBUG -- : User Load (0.4ms) SELECT "users". FROM "users"
2021-08-10 14:21:48 - ActiveRecord::StatementInvalid - SQLite3::SQLException: no such table: users: