Blog
server.rb
for Testing Sinatra Ruby Framework CRUD Operations with RSpec and Capybara Gems
Posted on August 10, 2015 in Ruby, Sinatra by Matt Jennings
See this post for a full describe of files used in a Sinatra Ruby framework for CRUD (Create Read Update Delete) operations with RSpec and Capybara testing.
/server.rb
require "sinatra"
require "active_record"
require "sqlite3"
ENV["SINATRA_ENV"] ||= "development"
ActiveRecord::Base.establish_connection(
:adapter => "sqlite3",
:database => "db/#{ENV['SINATRA_ENV']}.sqlite3"
)
class Project < ActiveRecord::Base
end
get "/" do
"Welcome to my portfolio"
end
get "/projects" do
# Get all projects
@projects = Project.all
erb :"projects/index"
end
get "/projects/new" do
erb :"projects/new"
end
# Add a new project using the "Add New Project" form
post "/projects" do
# Get the text inside the INPUT, TEXTAREA tags
# using the "params" hash
Project.create(name: params[:name], description: params[:description])
redirect "/projects"
end
# Show a single project
get "/projects/:id" do
@project = Project.find(params[:id])
erb :"projects/show"
end
# Show a single project to edit
get "/projects/:id/edit" do
@project = Project.find(params[:id])
erb :"projects/edit"
end
# Use "patch" to update a single project
patch "/projects/:id" do
project = Project.find(params[:id])
project.update(name: params[:name], description: params[:description])
redirect "/projects"
end
# User "delete" to delete a single project
delete "/projects/:id" do
project = Project.find(params[:id])
project.destroy
redirect "/projects"
end
Leave a Reply
To Top ↑