class: center, middle # Routing (Yönlendirme) --- # Rails Router(Yönlendirici) * Gelen isteği URL'e göre hangi controller actionına yönlendireceğini belirler. * Dinamik olarak path'leri oluşturarak view ve controller katmanında hard-coded string yazmayı önler(**places_path** vb) --- # URL'i Koda Bağlamak Rails uygulaması aşağıdaki gibi bir istek aldığında ```html GET /places/17 ``` Router'a bu isteği hangi controller actionına yönlendireceğini sorar. Eğer routes.rb dosyasında aşağıdaki gibi bir route tanımlandıysa; ```ruby get '/places/:id', to: 'places#show' ``` Gelen isteği `PlacesController`ın `show` actionına yönlendirir. --- # Resource Routing Resource routing bir resource(model) için CRUD(`index, show, new, edit, create, update, destroy`) routelarını kolayca oluşturmayı sağlar. Örneğin routes.rb içerisinde `resources :places` yazarsak, bu bizim için `places` üzerinde 7 tane route oluşturacak. --- # Namespace * `namespace`i kullanarak routeları namespace içerisinde tanımlayabilirsiniz. * Eğer namespaceli bi route tanımlarsanız, controllerlar da aynı namespace içerisinde olmalı ```ruby namespace :admin do resources :places en ``` --- # Referanslar * http://guides.rubyonrails.org/action_controller_overview.html ---