gigigo rails workshop

12
Rails Workshop @alexruperez

Upload: alex-ruperez

Post on 08-Jul-2015

351 views

Category:

Engineering


5 download

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-rails

TRANSCRIPT

Page 1: Gigigo Rails Workshop

Rails Workshop

@alexruperez

Page 2: Gigigo Rails Workshop

Create a new app

rails -v

rails new workshop --database=postgresql

cd workshop

Page 3: Gigigo Rails Workshop

Gemfile

gem 'rails_12factor'

gem 'less-rails'

gem 'twitter-bootstrap-rails'

gem 'devise'

gem 'therubyracer' (uncomment)

gem 'unicorn' (uncomment)

Page 4: Gigigo Rails Workshop

Run the new app

bundle install

bundle exec rake db:create

bundle exec rake db:migrate

rails s

Page 5: Gigigo Rails Workshop

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

Page 6: Gigigo Rails Workshop

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

Page 7: Gigigo Rails Workshop

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

Page 8: Gigigo Rails Workshop

web.rb

require 'sinatra' set :bind, '0.0.0.0'

get '/' do "Hello world!" end

Page 9: Gigigo Rails Workshop

config.ru

require './web' run Sinatra::Application

Page 10: Gigigo Rails Workshop

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

Page 11: Gigigo Rails Workshop

Procfile

web: bundle exec unicorn -p $PORT -c ./config/unicorn.rb

Page 12: Gigigo Rails Workshop

Thanks!

@alexruperez