routes.rb でエラー /1 ではなく.1となってしまう

問題:
users#show にいきたいのだがhttp://localhost:3000/users/1 とはならず http://localhost:3000/users.1

となってしまった。

 

エラー:

ActiveRecord::RecordNotFound at /users.1

Couldn't find User with 'id'=

 

他のページでのエラー:

NoMethodError at /questions

undefined method `users_path' for #<#<Class:0x007ff0e88107a0>:0x007ff0e880b958>

  .col-md-4
          = link_to "Q&A記録", users_path(current_user), :class => "a btn btn-default"

 


users_path
GET /users(.:format) users#show
  GET /users/:id(.:format) users#show

 

 

Rails.application.routes.draw do

 

resource :users, only: [:show, :index]
get 'users/:id' => 'users#show'

resource :registrations, only: [:new, :create]
resource :sessions, only: [:new, :create, :destroy]
resource :settings, only: [:edit, :update]
resources :categories
get "/questions", to: "questions#index"
get "/questions/category", to: "questions#index_category"

resources :questions do
resource :favorites, only: [:create, :destroy]
resources :answers
end
get 'slides/show'


root to: 'questions#index'

 

 

 

view file:

          = link_to "Q&A記録", users_path(current_user), :class => "a btn btn-default"

 

解決法:Routes.rbを編集して順番を変える。

 

Rails.application.routes.draw do

resource :registrations, only: [:new, :create]
resource :sessions, only: [:new, :create, :destroy]
resource :settings, only: [:edit, :update]

resources :users, only: [:index, :show]

resources :categories

get "/questions", to: "questions#index"
get "/questions/category", to: "questions#index_category"

resources :questions do
resource :favorites, only: [:create, :destroy]
resources :answers
end

get 'slides/show'


root to: 'questions#index'

 

 

参考になりそうなサイト:

shiro-16.hatenablog.com

nyaahara.hatenablog.com