7. Matz
Ruby is simple in appearance, but is very
complex inside, just like our human body.
7
8. Programming Language Type
● Dynamic Strong Language
● Ruby
● Perl
● Python
● PHP is Dynamic, but is not Strong.
● Java is Strong, but is not Dynamic.
8
43. a bloated controller
class EventController < ApplicationController
index /events/index
show /events/show/1
new /events/new
create /events/create
show_comment /events/3/show_comment/6
mark_spamcomment /events/7/mark_spamcomment/5
add_favorite /events/2/add_favorite
invite /events/1/invite
deny_user /events/1/deny_user/13
allow_user /events/2/allow_user/27
43
44. What is RESTful?
before after ActionController
/events/create POST /events events#create
/events/show/1 GET /events/1 events#show
/events/update/1 PUT /events/1 events#update
/events/destroy/1 DELETE /events/1 events#destroy
44
45. Let's modify bloated controller
class EventController < ApplicationController
index GET /events events#index
show GET /events/1 events#show
new GET /events/new events#new
create POST /events events#create
show_comment GET /events/3/comments/6 event_comments#show
mark_spamcomment PUT /events/7/comments/5/spam event_comments#spam
add_favorite POST /events/2/favorite events#favorite
invite POST /events/1/invite events#invite
deny_user PUT /events/1/users/13/deny event_users#deny
allow_user PUT /events/2/users/27/allow event_users#allow
45
46. RESTful routing
HTTP Verb Path action
GET /photos index
GET /photos/new new
POST /photos create
GET /photos/:id show
GET /photos/:id/edit edit
PUT /photos/:id update
DELETE /photos/:id destroy
46