4. Rails
David Heinemeier Hansson
2004
Używalne w roku 2007 (IMHO)
Produkt uboczny pracy przy projekcie Basecamp
(http://basecamphq.com)
Dziś używany przez: Hulu, Scribd, Twitter, Github...
Używany w prawie wszystkim co tworzy AmberBit :)
Białystok, JTeam, 2010-04-22
5. Slogany
MVC
Convention Over Configurationon
Don't Repeat yourself (DRY)
POLS (principle of least surprise) – Ruby
BDD / TDD
REST
Białystok, JTeam, 2010-04-22
7. MVC w Rails: Model
Warstwa Modeli:
- domyślnie jest to ActiveRecord – SQL
- alternatywy (SQL)
- DataMapper, Sequel
- alternatywy (NoSQL)
- MongoMapper, MongoId, Ripple, couch_foo
Białystok, JTeam, 2010-04-22
8. MVC w Rails: Widok
Renderuje treść odpowiedzi HTTP
Domyślnie: ERB
Alternatywy:
- HAML
- Liquid
- Builder (XML)
- Markaby
- wiele innych...
Białystok, JTeam, 2010-04-22
9. MVC w Rails: Kontroler
ActionController
- ściśle powiązany z Routerem
Alternatywy? Tak jakby...
- Rack Middleware
- Rails Metal
Białystok, JTeam, 2010-04-22
10. REST
GET /posts - pobiera listę artykułów
POST /posts - tworzy nowy artykuł
PUT /posts/id - aktualizuje treść artykułu
GET /posts/id - pobiera dany post
DELETE /posts/id - usuwa dany post
Dodatkowo:
GET /posts/new - formularz dodawania artykułu
GET /posts/id/edit - formularz edycji artykułu
Białystok, JTeam, 2010-04-22
11. PUT, DELETE?!?
RFC-2616
Dodatkowe słówka używane są np. w WebDav
Przeglądarki? Tylko GET i POST w formularzach HTML.
Hack:
<input type=”hidden” name=”_method” value=”put” />
Problemy:
- linki do DELETE muszą korzystać z JavaScriptu
Białystok, JTeam, 2010-04-22