gigigo rails workshop
DESCRIPTION
Rails Workshop at Gigigo Mobile Services. See also: https://github.com/gigigoapps/Ruby-Rails-Workshop https://github.com/plataformatec/devise https://github.com/seyhunak/twitter-bootstrap-railsTRANSCRIPT
Rails Workshop
@alexruperez
Create a new app
rails -v
rails new workshop --database=postgresql
cd workshop
Gemfile
gem 'rails_12factor'
gem 'less-rails'
gem 'twitter-bootstrap-rails'
gem 'devise'
gem 'therubyracer' (uncomment)
gem 'unicorn' (uncomment)
Run the new app
bundle install
bundle exec rake db:create
bundle exec rake db:migrate
rails s
Generate devise models
rails generate devise:install
rails generate devise User
Add ''config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }'' to config/environments/development.rb
bundle exec rake db:migrate
Apply Twitter Bootstrap
rails generate bootstrap:install less
rails g bootstrap:layout application
rails generate scaffold_controller User
Add ''before_action :authenticate_user!'' to app/controllers/users_controller.rb
rails g bootstrap:themed Users
Add ''resources :users'' and ''root ‘users#index’'' to config/routes.rb
Upload to Heroku
git init
git add .
git commit -am 'First commit'
heroku git:remote -a YOUR_HEROKU_APP
git push heroku master
heroku run rake db:migrate
web.rb
require 'sinatra' set :bind, '0.0.0.0'
get '/' do "Hello world!" end
config.ru
require './web' run Sinatra::Application
config/unicorn.rbworker_processes Integer(ENV["WEB_CONCURRENCY"] || 3) timeout 15 preload_app true
before_fork do |server, worker| Signal.trap 'TERM' do puts 'Unicorn master intercepting TERM and sending myself QUIT instead' Process.kill 'QUIT', Process.pid end
defined?(ActiveRecord::Base) and ActiveRecord::Base.connection.disconnect! end
after_fork do |server, worker| Signal.trap 'TERM' do puts 'Unicorn worker intercepting TERM and doing nothing. Wait for master to send QUIT' end
defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection end
Procfile
web: bundle exec unicorn -p $PORT -c ./config/unicorn.rb
Thanks!
@alexruperez