URL指向不同的控制器

时间:2017-02-08 11:35:04

标签: ruby-on-rails ruby

Hello Everoyone,当我转到/categories时,它指向UsersController#show

应该转到CategoriesController#index

这是我的路线的一瞥。

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

感谢您提前提供任何帮助。

1 个答案:

答案 0 :(得分:3)

这是因为你的第一条路线:

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

这是任何单斜杠和文字路径,并将其发送到users#show。因此,在类别的情况下,它将字符串'categories'输入到:id,参数并转到您的用户show方法。我怀疑您会在resources :users块之外的任何资源路径中找到相同的结果。

我建议您使用

简化路线
resources :users, only: :show

或者,如果你真的想使用那条路线,我会把它贴在路线文件的底部,以便先检查其他资源,这是最后一次处理的