Slide 1

Slide 1 text

Slim Ruby on Rails: Controllers & Middlewares Krzysztof Wawer

Slide 2

Slide 2 text

Request https://medium.com/@christemple/what-is-rack-in-ruby-7e0615f1d9b6

Slide 3

Slide 3 text

Request Rack App Middlewares log auth cache HTTP Request HTTP Response

Slide 4

Slide 4 text

Middleware

Slide 5

Slide 5 text

Rack Middleware http://railscasts.com/episodes/151-rack-middleware

Slide 6

Slide 6 text

Ruby on Rails Middleware stack $ rails new app $ rails new app --api $ rake middleware http://guides.rubyonrails.org/rails_on_rack.html#configuring-middleware-stack

Slide 7

Slide 7 text

Ruby on Rails Middleware stack use Rack::MethodOverride use Sprockets::Rails::QuietAssets use WebConsole::Middleware use ActionDispatch::Cookies use ActionDispatch::Session::CookieStore use ActionDispatch::Flash http://guides.rubyonrails.org/rails_on_rack.html#configuring-middleware-stack

Slide 8

Slide 8 text

RoR Middlewares problem https://github.com/rails/rails/blob/master/railties/lib/rails/application/default_middleware_stack.rb

Slide 9

Slide 9 text

http://paulserraino.com/rails/2016/02/29/rails-mountable-engines.html Rails Engines

Slide 10

Slide 10 text

Ruby on Rails Engine http://tech.taskrabbit.com/blog/2014/02/11/rails-4-engines/

Slide 11

Slide 11 text

Controller

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

ActionController::Base http://api.rubyonrails.org/classes/ActionController/Base.html

Slide 15

Slide 15 text

ActionController::API http://api.rubyonrails.org/classes/ActionController/API.html

Slide 16

Slide 16 text

ActionController::Metal http://api.rubyonrails.org/classes/ActionController/Metal.html

Slide 17

Slide 17 text

ActionController::API http://api.rubyonrails.org/classes/ActionController/API.html

Slide 18

Slide 18 text

Why ?

Slide 19

Slide 19 text

• Strong Parameters • Params Wrapper

Slide 20

Slide 20 text

• Strong Parameters • Params Wrapper Mapping

Slide 21

Slide 21 text

Mapping - missing part Nested Attributes - revealing structure