Monday, November 18, 2013

[Rails] Restful Routing and restful versus non-restful routes

So resources :products will create 7 different restful routes for CRUD operations for resource products.
For example: products GET /products(.:format) products#index

So restful route includes only controller name within itself and :id for operation like edit, show, update, delete.
When i create non-restful routes in rails for example: get ':controller/:action/:id' i only can see difference that i must explicitly write :action, so that ":action" makes this route non-restful?

So as i get this, first requirement for route(URL) to be restful is that route can't contain action name? Question 1

Second requirement for route to be restful is that action corresponding to route must "play by restful rules" in another word,
for example a GET should not leave side-effects on the server, but just retrieve data.
So if i have /products(.:format) products#index and within index action i saved something into DB, than above route is just looks like restful route but in fact it isn't? Question 2

I know that i can pass to restful route additional parameters, for example:
link_to "Show", products_path(id: 5, a: "aaaa", b: "bbbb") so now URL is: products/5?a=aaaa&b=bbbb.
So am i violating restful here, or this route is still restful? Question 3

To me seems that i don't need non-restful routes at all, when i can make a bunch of restful routes with construct like following?(and other similar construct) Question 4

resources :products do    member do      get 'preview'    end  end

Please don't redirect me to http://guides.rubyonrails.org/routing.html i read it multiple times :)

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/d30664c9-bd72-4268-8f0b-58ede1d76570%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home


Real Estate