Rails index route for resources named after uncountable substantives

Using uncountable resources is not recommended as it breaks Rails' magic, e.g. when using form_for. You'll always be better off using simple pluralizable resources.


Rails automatically creates path names for routes defined via the resource method. When you put resource 'user' into config/routes.rb, you can call users_path and get the path to the index action in the UsersController: /users.

However, if you have an uncountable resource like Sheep, you cannot access the index action via sheep_path, because it will refer to the show action: /sheep/:id.

Solution

As the linked article states, Rails creates a special <resource>_index_path for this scenario. Thus, you can simply call:

sheep_index_path
Dominik Schöler Over 9 years ago