How many files does Rails create in response to a single
script/generate
scaffold
request?
In REST, how do HTTP GET, PUT, POST, and DELETE map to the “CRUD” of create, read, update, and destroy?
What does “idempotent” mean?
How do you make sure a result can be bookmarked?
Why do four basic REST functions end up making seven different methods in the controller?
What does map.resources
:people
mean?
How do you specify responses in different formats?
How does an ID value connect to a specific resource?
What happens if you send a Rails application a chunk of XML?
Rails creates a lot of files in response to a script/generate scaffold
request, though
some of them may exist already. It will create index, show, new,
and edit view files, as well as one with the name of the object
specified. It will also create a model, test, test fixture,
migration, controller, test controller, and helper class, and add
a route to the routing table. So, the answer is usually 12.
GET maps to read. POST maps to create. PUT maps to update. DELETE maps to destroy.
Idempotent means that you can call the same method as many times as you want and still get the same result. A GET request should be idempotent, and no matter how many GET requests you make, none of those GET requests will change what is returned on the next call.
The easiest way to make sure that something can be bookmarked is to make it consistently accessible through a GET request to a particular URL. (Making this work with other request methods often means presenting their results as a redirect to a GET. That way the results are bookmarkable, and the transaction only happens once.)
The four REST methods map neatly to CREATE, READ, UPDATE,
and DELETE for a single resource, but there are a few other
operations needed to make the application more usable to humans.
All of them use GET. index
shows a listing of all the resources available. The new
method provides a form you can use
to create a new resource. The edit
method provides a form you can edit
to modify an existing resource. Those forms then call the create
and update
methods, respectively.
map.resources :people
creates a huge collection of routes that connect specific URLs to
the REST methods for working with :people
objects.
You can provide replies in different formats using the
respond to do |format|
call
inside of a controller.
By default, the Rails uses REST-based routing to connect to resources whose primary key matches the ID value provided in the URI.
If you send the XML as part of a POST or PUT, Rails will check the XML to see if it matches Rails’ expectations for the data structure that should go there. If it doesn’t match, it will reply with an error. If it does match, it will create a new record based on the data (POST) or modify an existing record (PUT).