Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Ruby on Rails introduction
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
joren
November 27, 2013
Programming
350
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Ruby on Rails introduction
A short walk through Ruby and Rails/
joren
November 27, 2013
More Decks by joren
See All by joren
Sock Techtalk
joren
0
310
RubyCamp BE #01
joren
0
150
Git techtalk [dutch]
joren
0
440
Chef and Rails, our story
joren
0
140
Mo.by
joren
0
91
Drupal deployments met Capistrano
joren
2
560
Git Techtalk
joren
3
220
Git
joren
11
1.7k
Other Decks in Programming
See All in Programming
IBM Bob Dojo #1 仕様駆動開発入門
oniak3ibm
PRO
0
100
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
340
仕様駆動開発による爆速プロダクト開発 / Bakusoku Spec Driven Development
kobakei
0
120
App Storeの外へ──日本のiOSサイドローディング入門 for iOSDC Japan 2026
yuukiw00w
0
230
Webの地図
yosuke_furukawa
PRO
6
4.7k
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
5
8.1k
SREの越境 / SRE Collaboration
y0hgi
2
270
Agents on Rails - Rails at Scale 2026
irinanazarova
0
150
Ghostty + Neovimで作る 透明でカッコ良い開発環境
j341nono
0
110
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
1
310
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
490
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
3
370
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
55
13k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Faster Mobile Websites
deanohume
310
32k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
250
Done Done
chrislema
186
17k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Music & Morning Musume
bryan
48
7.4k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Docker and Python
trallard
47
4.2k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
440
KATA
mclloyd
PRO
35
15k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Transcript
Ruby (on Rails) PHPBenelux @ Nucleus
• @joren • Openminds • ArrrrCamp
Ruby
History
History • 1995 • Yukihiro Matsumoto (aka Matz) • Philosophy:
Designed for programmer productivity and fun.
History • Inspired by Perl, Smalltalk, Lisp, Python • “I
wanted a scripting language that was more powerful than Perl, and more object-oriented than Python. That's why I decided to design my own language.”
Syntax
Dynamic typing
Strong typing
Duck typing • it walks like a duck; • it
talks like a duck; • it will probably be a duck.
Objects
Objects • Everything is an object • Defined by its
BEHAVIOUR
Objects Even primitive types
Classes - Modules • can be instantiated • object creation
• can inherit • cannot be included • can *not* be instantiated • mixin facility, namespace • no inheritance • can be included in classes and modules
Classes - Modules
Dynamic re-open everything
Dynamic
Dynamic
Variables
Methods
Methods
Strings & numbers
Arrays
Hashes
Loops
Conditions
Stdlib abbrev base64 benchmark bigdecimal cgi cmath coverage csv curses
date dbm debug delegate digest dl drb e2mmap English erb etc extmk fcntl fiddle fileutils find forwardable gdbm getoptlong gserver iconv io/console io/nonblock io/wait ipaddr irb json logger mathn matrix minitest minitest/benchmark minitest/spec mkmf monitor mutex_m net/ftp net/ http net/imap net/pop net/smtp net/telnet nkf objspace observer open- uri open3 openssl optparse ostruct pathname pp prettyprint prime profile profiler pstore psych pty racc racc/parser rake rdoc readline resolv resolv-replace rexml rinda ripper rss rubygems scanf sdbm securerandom set shell shellwords singleton socket stringio strscan sync syslog tempfile test/unit thread thwait time timeout tk tmpdir tracer tsort un uri weakref webrick win32ole xmlrpc yaml zlib
Gems • + 65.000 gems • little code libraries/modules •
gem install twitter
Rails just another gem
History • 37 Signals (Basecamp) • David Heinemeier Hansson (aka
DHH) • July 2004
MVC
Models • persintence-layer • validations • data manipulation methods •
define relations • CRUD
None
Views • templates • html (erb, haml, slim), xml, pdf,
json • custom languages
None
None
Controllers • get, post, patch, put, delete,… • parameter parsing
• session / cookie management
None
REST
generators • rails generate model Product name description:text • rails
generate controller products • rails generate mailer OrderMailer • rails generate migration AddActiveToProducts active:boolean • rails generate scaffold products • ‘rails generate’ to view all possibilities
Migrations • rake db:migrate • rake db:migrate:rollback • rake db:migrate:redo
Migrations
$ rake • rake is to ruby what make is
to C • run little ruby scripts • often used for cronjobs • rake -T
Convention Over Configuration
Sinatra
Sinatra
Development
Ruby Version Management • chruby • rvm
Bundler • gem version management • bundle install rails •
bundle update rails • bundle exec rails console • Gemfile & Gemfile.lock
Bundler
Tests • mini_test, unit_test • RSpec • cucumber • capybara
Run it • Local • bundle exec rails server •
pow.cx
Run it • Online • rack: unicorn, puma, passenger
Deploy • mina • capistrano • cap deploy
Community & Learn
Ruby Tapas
RailsCasts
learn.thoughtbot.com/rails
Ruby Rogues (+parley)
Visit a conference (like ArrrrCamp)
rails girls <3
So…
Ruby makes me happy
Tell a story
Thanks! Let’s have a drink.