Your SlideShare is downloading. ×
Ruby on Rails & PostgreSQL - v2
Ruby on Rails & PostgreSQL - v2
Ruby on Rails & PostgreSQL - v2
Ruby on Rails & PostgreSQL - v2
Ruby on Rails & PostgreSQL - v2
Ruby on Rails & PostgreSQL - v2
Ruby on Rails & PostgreSQL - v2
Ruby on Rails & PostgreSQL - v2
Ruby on Rails & PostgreSQL - v2
Ruby on Rails & PostgreSQL - v2
Ruby on Rails & PostgreSQL - v2
Ruby on Rails & PostgreSQL - v2
Ruby on Rails & PostgreSQL - v2
Ruby on Rails & PostgreSQL - v2
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Ruby on Rails & PostgreSQL - v2

1,643

Published on

Ruby-on-Rai

Ruby-on-Rai

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,643
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
10
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Ruby-on-Rails & PostgreSQL John Ashmead
  • 2. Ruby-on-Rails • Based on Ruby • A Framework, like Django • Widely popular • Ruby + ActiveRecord + Lots of Web Stuff + Lots of other Stuff • Michael Hardt: http://ruby.railstutorial.org
  • 3. Ruby Version Manager • RVM lets you run multiple versions of ruby • Copies everything into some trees, then switches pointers around • Manages gems & gemsets • Bundle install, bundle update
  • 4. Gemfile source 'https://rubygems.org' ! ruby '2.0.0' ! # Make sure we are using latest ‘rails’ gem 'rails', '4.0.0' ! # Use Postgres as the database for Active Record gem 'pg' ! # Use SCSS for stylesheets gem 'sass-rails', '~> 4.0.0' ! # switch to bootstrap, rspec, factory_girl, selenium, capybara ! …
  • 5. ActiveRecord • Database adaptor id • General purpose name • Convention over configuration • Reasonable defaults • Standalone product maps description created_at updated_at
  • 6. Finally, PostgreSQL • ‘pg’ gem • Provides ActiveRecord with interface to Postgres • AR has an “execute” function that lets you run raw sql • ‘postgres-pr’ gem gives access to PostgreSQL specific features, if needed
  • 7. Foreign Keys • ActiveRecord has a lot of “associations” • Has_many, belongs_to, has_and_belongs_to_many • Doesn’t clean up the existing database • Doesn’t automatically generate the relevant keys • Doesn’t fix the metadata
  • 8. create_table "maps", force: true do |t| t.integer "user_id" t.string "map_type", t.string "name" t.text "description" t.decimal "map_width" t.decimal "map_height" t.datetime "created_at" t.datetime "updated_at" end CREATE TABLE maps ( id integer NOT NULL, user_id integer, map_type character varying(255), name character varying(255), description text, map_width numeric, map_height numeric, created_at timestamp without time zone, updated_at timestamp without time zone ); Weirder than it looks
  • 9. Migrations rails generate scaffold Map user_id:integer map_type:string name:string description:text map_width:decimal map_height:decimal class CreateMaps < ActiveRecor def change create_table :maps do |t| t.integer :user_id t.string :map_type, t.string :name, t.text :description t.decimal :map_width t.decimal :map_height ! t.timestamps end end end rake db:migrate && rails db:migrate RAILS_ENV=test
  • 10. Heroku stack • Ruby-on-Rails front end • PostgreSQL preferred • Well documented • Free up to a reasonable point • Integrated with github • Lots of tools • Mostly works • https://www.heroku.com
  • 11. Red Green Refactor • Agile & Stories • Examples & TDD (Testdriven development) over APIs • MVC: Model/View/ Controller • Upgrades in RoR much trickier than in PostgreSQL
  • 12. Domain Specific Languages • • PostgreSQL makes it easy to hook existing languages in: i.e. Javascript as a server language. • Gems versus packages. About 30K gems! Of widely varying quality. • YMMV describe "home page" do let!(:person) { FactoryGirl.create(:person) } } Ruby makes it easy to write DSLs before { sign_in person visit home_people_path(person) } it { should have_content(person.name) it { should have_title(person.name) } end
  • 13. Long learning curves • Ruby-on-rails has a lot of levels • Achieving rapport with rails takes time • Help: railscasts, stackoverflow, … • Grow little neurons, grow (damn you!)
  • 14. There’s a page for that • http://localhost:8081/phpPgAdmin/ • http://guides.rubyonrails.org • http://api.rubyonrails.org • https://codeclimate.com • http://localhost:3000 • https://github.com • http://ruby.railstutorial.org/book/ruby-on-rails-tutorial? version=4.0 • http://ruby-doc.com/docs/ProgrammingRuby/ • …

×