Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
A few slides about the migration from Rails 4 t...
Search
Adam Nowak
July 06, 2016
Programming
1
240
A few slides about the migration from Rails 4 to Rails 5
based on github.com/netguru/reminders app
Adam Nowak
July 06, 2016
Tweet
Share
More Decks by Adam Nowak
See All by Adam Nowak
20x more people around. Highlights and challenges of the fast growing team.
lubieniebieski
1
110
Daily Development Tips
lubieniebieski
0
130
Stick to the rules
lubieniebieski
4
500
Other Decks in Programming
See All in Programming
Webの技術スタックで マルチプラットフォームアプリ開発を可能にするElixirDesktopの紹介
thehaigo
2
1k
PLoP 2024: The evolution of the microservice architecture pattern language
cer
PRO
0
2.6k
詳細解説! ArrayListの仕組みと実装
yujisoftware
0
560
PHP でアセンブリ言語のように書く技術
memory1994
PRO
1
160
Quine, Polyglot, 良いコード
qnighy
4
630
ピラミッド、アイスクリームコーン、SMURF: 自動テストの最適バランスを求めて / Pyramid Ice-Cream-Cone and SMURF
twada
PRO
10
1.2k
Amazon Bedrock Agentsを用いてアプリ開発してみた!
har1101
0
320
3rd party scriptでもReactを使いたい! Preact + Reactのハイブリッド開発
righttouch
PRO
1
600
Enabling DevOps and Team Topologies Through Architecture: Architecting for Fast Flow
cer
PRO
0
270
Jakarta Concurrencyによる並行処理プログラミングの始め方 (JJUG CCC 2024 Fall)
tnagao7
1
280
シールドクラスをはじめよう / Getting Started with Sealed Classes
mackey0225
3
450
Importmapを使ったJavaScriptの 読み込みとブラウザアドオンの影響
swamp09
4
1.4k
Featured
See All Featured
A better future with KSS
kneath
238
17k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Faster Mobile Websites
deanohume
305
30k
Imperfection Machines: The Place of Print at Facebook
scottboms
264
13k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
A Philosophy of Restraint
colly
203
16k
Code Reviewing Like a Champion
maltzj
520
39k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
47
2.1k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
What's new in Ruby 2.0
geeforr
343
31k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
370
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