Stef Hej
Stef Hej

Reputation: 1377

Rails Routes Wrong Prefix

I'm getting a strange error when renaming the resourcce "like" to "love"

In routes.rb I've changed:

resources :likes
resources :recipes do
  member do
    get :likes
  end
end

to

resources :loves
resources :recipes do
  member do
    get :loves
  end
end

and rake:routes says

              loves GET    /loves(.:format)                        loves#index
                    POST   /loves(.:format)                        loves#create
           new_lofe GET    /loves/new(.:format)                    loves#new
          edit_lofe GET    /loves/:id/edit(.:format)               loves#edit
               lofe GET    /loves/:id(.:format)                    loves#show
                    PATCH  /loves/:id(.:format)                    loves#update
                    PUT    /loves/:id(.:format)                    loves#update
                    DELETE /loves/:id(.:format)                    loves#destroy
       loves_recipe GET    /recipes/:id/loves(.:format)            recipes#loves
            recipes GET    /recipes(.:format)                      recipes#index
                    POST   /recipes(.:format)                      recipes#create
         new_recipe GET    /recipes/new(.:format)                  recipes#new
        edit_recipe GET    /recipes/:id/edit(.:format)             recipes#edit
             recipe GET    /recipes/:id(.:format)                  recipes#show
                    PATCH  /recipes/:id(.:format)                  recipes#update
                    PUT    /recipes/:id(.:format)                  recipes#update
                    DELETE /recipes/:id(.:format)                  recipes#destroy

and ofcourse i get an error

uninitialized constant User::Lofe

but where comes the prefix "Lofe"? looks a bit strange for me

Upvotes: 2

Views: 255

Answers (1)

emars
emars

Reputation: 116

This is due to the active support pluralization features in rails.

To solve your issue:

in config/initializers/inflections.rb add the following:

ActiveSupport::Inflector.inflections do |inflect|
  inflect.uncountable %w(Loves)
end

After running $ rake:routes I get:

 Prefix Verb   URI Pattern               Controller#Action
loves_index GET    /loves(.:format)          loves#index
            POST   /loves(.:format)          loves#create
  new_loves GET    /loves/new(.:format)      loves#new
 edit_loves GET    /loves/:id/edit(.:format) loves#edit
      loves GET    /loves/:id(.:format)      loves#show
            PATCH  /loves/:id(.:format)      loves#update
            PUT    /loves/:id(.:format)      loves#update
            DELETE /loves/:id(.:format)      loves#destroy

Upvotes: 2

Related Questions