2017-02-08 5 views
0

Hello Everoyone, когда я иду на /categories, указывает на UsersController#show.URL-адреса для разных контроллеров

Он должен идти в CategoriesController#index

Вот это glimps моих маршрутов.

Rails.application.routes.draw do 
    get ':id' => 'users#show', as: :user_profile 

    resources :users, path: ':username' do 
    collection do 
     resources :outfits 
     resources :cart_items, only: [:create, :index, :destroy] 
     resources :relationships, only: [:create, :destroy] 
     resources :addresses, only: [:new, :create, :edit, :update, :destroy] 
     resources :paypals, except: [:index] 
    end 
    end 

    resources :categories 
end 

Благодарим за любую помощь заранее.

ответ

3

Его из-за ваш первый маршрут:

get ':id' => 'users#show', as: :user_profile 

Это принимает любого одного слэша и текст пути и отправки в users#show. Таким образом, в случае категорий он вводит строку «категории» в параметр: id, и переходит к вашему методу show users. Я подозреваю, что вы найдете тот же результат с любыми путями ресурсов, которые вы разместили вне своего блока resources :users.

Я бы предложил сохранить ваши маршруты простые и используя

resources :users, only: :show 

или, если вы действительно хотите использовать этот маршрут, я бы вставить его в нижней части файла маршрутов так, чтобы другие ресурсы провериться первыми, и последний обработан

Смежные вопросы