What is the logical difference between resource and resources methods
Here is some examples:
resource :orders, :only => [:index, :create, :show]
> rake routes
orders POST /orders(.:format) orders#create
GET /orders(.:format) orders#show
resources :orders, :only => [:index, :create, :show]
> rake routes
orders GET /orders(.:format) orders#index
POST /orders(.:format) orders#create
order GET /orders/:id(.:format) orders#show
resource :orders
> rake routes
orders POST /orders(.:format) orders#create
new_orders GET /orders/new(.:format) orders#new
edit_orders GET /orders/edit(.:format) orders#edit
GET /orders(.:format) orders#show
PUT /orders(.:format) orders#update
DELETE /orders(.:format) orders#destroy
resources :orders
> rake routes
orders GET /orders(.:format) orders#index
POST /orders(.:format) orders#create
new_order GET /orders/new(.:format) orders#new
edit_order GET /orders/:id/edit(.:format) orders#edit
order GET /orders/:id(.:format) orders#show
PUT /orders/:id(.:format) orders#update
DELETE /orders/:id(.:format) orders#destroy
It looks like method resource does not create route for index, and helpers in some cases are different (new_order and new_orders). Why?
Actually you are right,
resourceshould not create an index action, unless you ask for the index action explicitly, this way:Helpers should differ too, but not that much as in your example, because the convention is to use a singular form with the
resourcemethod, and the plural with theresourcesAnd the logical difference is to declare you logically can’t have the plural for resource in your app, for example Admin or whatever