M.Serhat Dündar - Python, Ruby, Rails, Linux, MySQL

M.Serhat Dündar - Python, Ruby, Rails, Linux, MySQL

Active Record modellerden sorumlu olan Rails kütüphanesi olduu gibi, Action Pack ise view ve controllerdan sorumlu Rails kütüphanesidir.

Action Controller

  • Rails uygulamamzda gerçekleen her türlü etkileim ve hareket controller tarafndan kontrol edilir.
  • Railste controllerlar Ruby snflar olarak tasarlanrlar.
  • Controller içerisinde, çeitli actionlar için yazlm metodlar bulunur.

Aksi belirtilmedii sürece herhangi bir Ruby snf içerisindeki metodlarn durumu publictir yani herhangi bir kii tarafndan eriilebilir durumdadrlar. Eer bir metodu private olarak tanmlarsanz, o metod yalnzca ait olduu class içerisinde kullanlabilir olur. Private olarak tanmlanm bir metodu ait olduu class darsndan çarmaya çalrsanz NoMethodError hatas döner.

Railste sklkla ve aksi belirtilmedikçe, bir action çaltktan sonra bir view render edilir. Action Controller, conventionn bir sonucu olarak render edecei view actionn adyla bulmaya çalr. Örnein app/controllers/articles_controller.rb controller içerisinde bulunan new metodu, convention gerei /app/views/articles/new.html.erb sayfasn render eder.

Action View

Controller ve Viewn iletiim halinde kalabilmesi için paylalan deikenlerden (shared variables) faydalanrz. Bu deilenlerin tanm @ sembolü ile balar ve controllerda tanmlandktan sonra viewdan çarlabilirler.

Burada @articles deikenimiz controllerdan geliyor.

Embeded Ruby (ERB)

ERB sayesinde Ruby kodlarmz view içerisinde kullanabiliriz. View dosyalarmz içerisinde <% %> (evaluation embedding tags) ve <%= %> (output embedding tags) etiketlerini kullanarak Ruby kodlarnn viewda ilemesini salarz. Bu iki etiketten yalnzca output türünde = iareti bulunduuna dikkat ediniz. Output etiketi yani <%= %> ile, ilenen Ruby koduna ait çktnn print edilmesini istediimizi belirtiriz. Oysa ki evaluation etiketleri yani <% %> kullanldnda, etiketler içerisindeki kod ilenir ve süreç tamamlanr, yani herhangi bir print ilemi yaplmaz.

Helpers

Her ne kadar ERb ile viewda çeitli Ruby kodlarn çaltrabiliyor ve controllerda viewa dair iler yaptrabiliyor olsakta, bu durum MVCnin yaps ve mantna terstir. Controllern asl ii view kodu üretmek olmad gibi, viewin ii de mantksal süreçleri çözümlemek deildir. View ile controller arasndaki bu boluu dolduran yaplara helper ad verilir. Helperlar sorun yaratan bu boluu doldurarak controller ve view arasnda bir köprü görevi görürler. Her bir controllern kendine ait helper vardr. Örnein articles_controller.rb için articles_helper.rb dosyas.

Action Pack Request Döngüsü

Action Pack request-response döngüsü aadaki admlardan oluur:

  1. Rails uygulamamz d dünyadan (çounlukla browser) bir request alr.
  2. Routing, çalmas gereken controller ve action tespit etmek için gelen requesti parçalar.
  3. Requesti ele alacak controller belirlenir ve ilgili metodlar çarlr.
  4. Controller model ile iletiime geçer. Çounlukla bir CRUD süreci gerçekletirir.
  5. Browsera (veya requesti yapan her ne ise) render edilecek sayfay içeren veya yalnzca redirectten ibaret bir response döndürülür.

rails-action-pack-request-response-cycle


share this article to: Facebook Twitter Google+ Linkedin Digg
Posted by Ivanov, Published at 6:24 PM and have 0 comments

No comments:

Post a Comment