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
A few slides about the migration from Rails 4 t...
Search
Adam Nowak
July 06, 2016
Programming
270
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
A few slides about the migration from Rails 4 to Rails 5
based on github.com/netguru/reminders app
Adam Nowak
July 06, 2016
More Decks by Adam Nowak
See All by Adam Nowak
20x more people around. Highlights and challenges of the fast growing team.
lubieniebieski
1
140
Daily Development Tips
lubieniebieski
0
150
Stick to the rules
lubieniebieski
4
530
Other Decks in Programming
See All in Programming
ジョジョの世界をXRで再現する
mofurune
0
160
R8 の設定見直しでアプリサイズ削減
andpad
0
220
APNsからLive Activityを開始する話
yumnumm
0
170
Event is what happens
moro
2
770
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.6k
RAG の “R” を Swift で覗いてみる 〜「意味から探す」検索の仕組み〜
nao_randd
0
160
Unity6 URPによる海底をテーマにしたVJシステムの解説 | Unity Shader 完全に理解した 勉強会
gam0022
0
370
TechTown - Creating Composable Callables in Contemporary C++
rollbear
0
130
なぜCTOを降りてFDEを選んだのか?〜なぜプロダクト企業がFDEで顧客の現場に踏み込むのか〜
gonta
1
210
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
220
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
180
Workers Cache を知る
syumai
0
360
Featured
See All Featured
Ruling the World: When Life Gets Gamed
codingconduct
0
400
Into the Great Unknown - MozCon
thekraken
41
2.8k
The World Runs on Bad Software
bkeepers
PRO
72
12k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
430
WCS-LA-2024
lcolladotor
0
890
Fireside Chat
paigeccino
43
4.1k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Code Review Best Practice
trishagee
74
20k
Writing Fast Ruby
sferik
630
63k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
How to Think Like a Performance Engineer
csswizardry
28
2.9k
Transcript
Rails 5 is here a few slides about the migration
from Rails ~4
None
my slides are not about the features - you have
to check them out on your own!
I need a TODO app for test
but let’s upgrade something more useful
None
https://github.com/ netguru/reminders
Gemfile gem "rails", "~> 4" gem "coffee-rails" gem "bootstrap-datepicker-rails" gem
"decent_exposure" gem "draper" gem "jquery-rails", "4.0.4" # version 4.0.5 breaks jquery-datatables
UPDATING!
Step 1 - changing relevant gems gem "rails", "~> 4”
Step 1 - changing relevant gems gem "rails", "~> 4”
gem "rails", "~> 5"
Step 1 - changing relevant gems bundle update rails
None
None
Step 2 - updating gems along the way bundle update
rails railties
meh!
Step 2 - updating gems along the way bundle update
rails railties sass-rails
nope!
Step 2 - updating gems along the way bundle update
rails railties sass-rails coffee-rails slim-rails
still missing something!
Step 3 - strict dependencies gem "jquery-rails", "4.0.4" # version
4.0.5 breaks jquery-datatables
Step 3 - strict dependencies gem "jquery-rails", "4.0.4" # version
4.0.5 breaks jquery-datatables gem "jquery-rails"
Step 3 - strict dependencies gem "sass-rails", "~> 5.0"
gem "sass-rails"
Step 3 - strict dependencies bundle update rails railties sass-rails
coffee-rails slim-rails jquery-rails
None
better, but still
let’s have a look again
None
https://github.com/ evrone/quiet_assets/pull/ 51
so we don’t need it anymore
Step 1 - changing relevant gems gem "quiet_assets"
Step 1 - changing relevant gems gem "quiet_assets" gem "quiet_assets"
Step 2 - updating gems along the way bundle update
rails railties coffee- rails slim-rails
pretty good, we need to solve rspec-rails
Step 2 - updating gems along the way bundle update
rails railties coffee- rails slim-rails rspec-rails
None
hahahha, you fool
zoom in
None
there should be puma here, right?
Step 1 - changing relevant gems gem "thin" gem "thin"
Step 2 - updating gems along the way bundle update
rails railties coffee- rails slim-rails rspec-rails
yeah
step 1&2 done - our Gemfile is ok
Step 3 - draper /Users/adamo/.rbenv/versions/2.2.3/lib/ ruby/gems/2.2.0/gems/draper-2.1.0/lib/ draper.rb:5:in `require': cannot load
such file -- active_model/serializers/ xml (LoadError)
It turns out, draper gem isn’t quite ready for Rails
5
It turns out, draper gem isn’t quite ready for Rails
5
I’ve used drape gem instead but you should follow https://github.com/drapergem/
draper/pull/752
Step 3 - draper gem "draper" gem "draper"
Step 3 - draper bundle
drape is pretty much the same as draper but you
have to change the namespace
let’s create base decorator (it should have been here before)
Step 3 - draper class BaseDecorator < Drape::Decorator; end class
ProjectDecorator < BaseDecorator
awesome!
Step 4 - rollbar bundle update rollbar # 2.8.0 wasn’t
good enough
push it!
None
webrick? it’s so <=Rails4
None
Step 4 - puma gem „puma" bundle
None
success!
Step 4 - rails:update bin/rake rails:update
keep going
Step 4 - rspec bundle update rspec-core
it turns out, you have to be strict this time
Step 4 - rspec gem "rspec-rails", "~> 3.5" bundle
yep!
Step 5 - decent_exposure /Users/adamo/code/reminders/app/ controllers/application_controller.rb: 2:in `<class:ApplicationController>': undefined method
`decent_configuration' for ApplicationController:Clas
well, read the wiki https://github.com/hashrocket/ decent_exposure/wiki/Api-changes-in- version-3#undefined-method- decent_configuration
Step 5 - decent_exposure decent_configuration do strategy DecentExposure::StrongParametersStrategy end
Step 6 - rails-controller- testing 245 examples, 3 failures NoMethodError:
assert_template has been extracted to a gem. To continue using it, add `gem 'rails-controller-testing'` to your Gemfile.
Step 6 - rails-controller- testing gem „rails-controller-testing" bundle
YES
Step 6 - rack-mini-profiler bundle update rack-mini-profiler
QL
it works:)
https://github.com/ netguru/reminders/pull/35
–no one ever “migration will be easy”
–me, now “but please do it”
t.hanks! adam nowak / @lubieniebieski 06/07/2016