質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

1回答

128閲覧

ルーティングエラーが解決できない

dtr15fy

総合スコア2

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2024/04/01 01:39

実現したいこと

ルーティングエラーを解決する

発生している問題・分からないこと

退会機能の試運転をしているが、ルーテイングエラーで引っかかってしまう

エラーメッセージ

error

1Started PATCH "/users/withdraw" for 60.109.217.239 at 2024-04-01 01:29:14 +0000 2Cannot render console from 60.109.217.239! Allowed networks: 127.0.0.0/127.255.255.255, ::1 3 4ActionController::RoutingError (uninitialized constant UsersController 5 6 Object.const_get(camel_cased_word) 7 ^^^^^^^^^^ 8 9 raise MissingController.new(error.message, error.name) 10 ^^^^^):

該当のソースコード

users/show

1<div> 2 <h3><%= @user.name %></h3> 3 <h3><%= @user.email %></h3> 4 <p><%= link_to "編集" , edit_user_path(@user.id) %></p> 5 <%= link_to "退会", users_withdraw_path, method: :patch, "data-confirm" => "本当に退会しますか?" %> 6 <p><%#= link_to "#{@post_image.post_comment.count} コメント", post_image_path(post_image.id) %></p> 7 <% if current_user.following?(@user) %> 8 <%= link_to "フォロー外す", relationship_path(user.id), method: :delete %> 9 <% else %> 10 <%= link_to "フォローする", relationships_path(@user.id), method: :post %> 11 <% end %> 12</div>

routes

1Rails.application.routes.draw do 2 devise_for :admin, controllers: { 3 sessions: "admin/sessions" 4 } 5 get 'admin/homes/top' => "admin/homes#top" 6 #get 'admin/users' "admin/users#index" 7 #patch "withdraw/:id" => "users#withdraw", as: "withdraw" 8 get 'users/sign_up' => 'public/users#new' 9 devise_for :users, controllers: { 10 registrations: 'public/registrations', 11 passwords: 'public/passwords' 12 } 13 post 'users/guest_sign_in', to: 'users/sessions#guest_sign_in' 14 get 'homes/top' => 'public/homes#top' 15 post 'homes/top', to: 'public/homes#guest_sign_in' 16 17 post 'users/sign_up' => 'public/users#index' 18 get 'users/:id' => 'public/users#show', as: 'user' 19 get 'users/:id/edit' => 'public/users#edit', as: 'edit_user' 20 patch 'users/:id/edit' => 'public/users#show' 21 patch 'users/withdraw' => 'users#withdraw' 22 resources :relationships, only: [:create, :destroy] 23 get 'followings' => 'relationships#followings', as: 'followings' 24 get 'followers' => 'relationships#followers', as: 'followers' 25 26 get 'posts' => 'public/posts#index' 27 get 'posts/new' => 'public/posts#new' 28 post 'posts' => 'public/posts#create' 29 get 'posts/:id' => 'public/posts#show', as: 'post' 30 get 'posts/:id/edit' => 'public/posts#edit', as: 'edit_post' 31 patch 'posts/:id' => 'public/posts#update', as: 'update_post' 32 delete 'posts/:id' => 'public/posts#destroy', as: 'destroy_post' 33 resources :post_images, only: [:new, :create, :index, :show, :destroy] do 34 resources :post_comments, only: [:create] 35end 36 37 38 get 'searches' => 'public/searches#index' 39 get 'searches/result' => 'public/searches#result' 40 namespace :admin do 41 resources :users 42 end 43end 44

users_controller

1class Public::UsersController < ApplicationController 2 def index 3 @user = User.all 4 end 5 6 def new 7 @user = User.new 8 @post_image = @user.profile_image 9 end 10 11 def create 12 @user = User.new(user_params) 13 @user.save 14 redirect_to user_path(@user.id) 15 end 16 17 def show 18 @user = current_user 19 @post_image = @user.profile_image 20 @following_users = @user.following_users 21 @follower_users = @user.follower_users 22 end 23 24 def edit 25 @user = User.find(params[:id]) 26 end 27 28 def update 29 @user = User.find(params[:id]) 30 @user.update(user_params) 31 redirect_to user_path(@user) 32 end 33 34 def withdraw 35 @user = current_user 36 @user.update(is_deleted: true) 37 reset_session 38 redirect_to homes_top_path 39 end 40 41 def follows 42 @user = User.find(params[:id]) 43 @users = user.following_users 44 end 45 46 def followers 47 @user = User.find(params[:id]) 48 @user = user.follower_users 49 end 50 51 private 52 53 def user_params 54 params.require(:user).permit(:name, :email, :profile_image, :is_deleted) 55 end 56end 57

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

rails routesを試したり、コントローラーなどを編集したが治らなかった

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

uninitialized constant UsersController と言われてます。
app/controllers/users_controller.rb 有ります?

投稿2024/04/01 04:20

winterboum

総合スコア23360

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dtr15fy

2024/04/01 05:25

users_controller.rbとuser.rbは作成済みです
winterboum

2024/04/01 05:33

users_controller.rb って class Public::UsersController < ApplicationController これだったら、UsersController は未定義ですよ
dtr15fy

2024/04/02 05:12

しばらく調べてみましたが、同様のエラー解決の記事が見つかりませんでした。どこを修正すれば良いでしょうか。
winterboum

2024/04/02 07:19

原因は一つだけではないでしょう。で 「uninitialized constant UsersController」に関して言うなら app/controllers/users_controller.rb に 「Public::UsersController」ではなく UsersController を定義してください もしくは、 UsersController を要求しているところがまちがいで、Public::UsersController を要求すべきなら、そチラを直しましょう。 どちらが正しいのか、はあなたの判断です、
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問