Rails Question: I want to edit staff member 3. What URL and HTTP verb should I u
ID: 3591907 • Letter: R
Question
Rails Question:
I want to edit staff member 3. What URL and HTTP verb should I use?
The routes table for a Rails application is shown below. Controller#Action catererstindex caterers#create caterers#new caterersfedit caterers#show caterers#update caterers#update caterersftdestroy staff membersfindex staff-members#create Prefix Verb URI Pattern caterers GET /caterersC.:format) POST /caterers.:format) new caterer GET /caterers/new.:format) edit caterer GET/caterers/:id/edit(.:format) caterer GET /caterers/:id.:format) PATCH /caterers/:id.:format) PUT /caterers/:id.:format) DELETE/caterers/:id.:format) staff members GET /staff membersC.:format) POST /staff membersC.:format) new-staff-member GET edit staff member GET staff-member GET /staff-members/new(":format) staff-members#new /staff members/:id/edit(.:format) staff memberstfedit /staff-members: id(": format) staff-members#show staff.Nembers#update staff-members#update staff-members#destroy presenters#index presenters#create presenters#new presenterstedit presenters#show presenters#update presenters#update presenters#destroy PATCH /staff-members:id(. :format) PUT /staffJembers/ :id(.:format) DELETE /staffJembers/id("format) presenters GET /presenters.:format) POST /presenters.:format) new presenter GET /presenters/new.:format) edit presenter GET /presenters/:id/edit.:format) presenter GET /presenters/:id.:format) PATCH /presenters/:id.:format) PUT /presenters/:id.:format) DELETE/presenters/:id.:format)Explanation / Answer
PUT (In special case PATCH) and POST, both can be used for your purposeb(editing the resource).
Example- a=8; a++ what happens both are called multiple times. A remains 8 but second once keep incrementing a=8 is idempotent in nature that is, however times it’s called the value wont change but a++ is not as it will keep changing the value.
POST is not idempotent in nature, hence there is risk that I might override the resource during subsequent calls for any resource update(edit).
PUT is idempotent in nature, hence the resource value will remain same though same call is made again and again.
Hence for EDIT operation, PUT will be more suitable but there is no hard line drawn here and POST can be used at a time where network retries and DB state is strictly controlled by the developer's code.
STILL, it is good practice to use more stable REST verb for given scenario and here PUT, will make more sense.
URL: PUT /staff_members/:id/(:format)
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.