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

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

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

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

Q&A

解決済

1回答

3443閲覧

rails sでいきなり(ArgumentError)が出てきたのでお教示いただきたい

kmryshk

総合スコア5

Ruby on Rails

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

0グッド

0クリップ

投稿2021/04/07 01:30

編集2021/04/07 01:35

前提・実現したいこと

プログラミング始めて1ヶ月の初心者です。
今回railsで簡易的なSNSアプリを作成しており、上手くいっておりました。
しかし『いいね機能』を実装している時、ターミナル入力のrails sが表示できていたのに、急に(ArgumentError)が出ました。

発生している問題・エラーメッセージ

name@PC cafery % rails s => Booting Puma => Rails 6.1.3 application starting in development => Run `bin/rails server --help` for more startup options Exiting Traceback (most recent call last): 108: from bin/rails:2:in `<main>' 107: from bin/rails:2:in `load' 106: from /Users/name/cafery/bin/spring:7:in `<top (required)>' <中略> 1: from /Users/name/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionpack-6.1.3/lib/action_dispatch/routing/mapper.rb:362:in `translate_controller' /Users/name/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/actionpack-6.1.3/lib/action_dispatch/routing/mapper.rb:317:in `block (2 levels) in check_controller_and_action': 'users ' is not a supported controller name. This can lead to potential routing problems. See https://guides.rubyonrails.org/routing.html#specifying-a-controller-to-use (ArgumentError)

該当のソースコード

問題のあるソースコードがわからないので、コントローラー・ルートのソースコードを貼ります。他のソースコードが必要なら教えていただきたいです。

applicationcontroller

1class ApplicationController < ActionController::Base 2 before_action :configure_permitted_parameters, if: :devise_controller? 3 4 protected 5 6 def after_sign_in_path_for(resource) 7 user_path(current_user) 8 end 9 10 def after_sign_up_path_for(resource) 11 user_path(current_user) 12 end 13 14 15 def configure_permitted_parameters 16 devise_parameter_sanitizer.permit(:sign_up, keys: [:username]) 17 end 18 19 20 end

postcontroller

1class PostsController < ApplicationController 2 before_action :authenticate_user!, except: [:index] 3 def index 4 @post = Post.all 5 end 6 7 def show 8 @post = Post.find(params[:id]) 9 end 10 11 def new 12 @post = Post.new 13 end 14 15 def create 16 @post = Post.new(post_params) 17 @post.user_id = current_user.id 18 if @post.save 19 redirect_to post_path(@post), notice: '投稿に成功しました。' 20 else 21 render :new 22 end 23 end 24 25 def edit 26 @post = Post.find(params[:id]) 27 if @post.user != current_user 28 redirect_to post_path, alert: '不正なアクセスです。' 29 end 30 end 31 32 def update 33 @post = Post.find(params[:id]) 34 if @post.update(post_params) 35 redirect_to post_path(@post), notice: '更新に成功しました。' 36 else 37 render :edit 38 end 39 end 40 41 def destroy 42 post = Post.find(params[:id]) 43 post.destroy 44 redirect_to post_path(post.user), notice: "削除しました。" 45 end 46 47private 48def post_params 49 params.require(:post).permit(:title, :body, :image) 50end 51 52end 53

userscontroller

1class UsersController < ApplicationController 2 before_action :authenticate_user!, except: [:index] 3 def index 4 @users = User.all 5 end 6 7 def show 8 @user = User.find(params[:id]) 9 end 10 11 def edit 12 @user = User.find(params[:id]) 13 if @user != current_user 14 redirect_to users_path(current_user), alert: '不正なアクセスです。' 15 end 16 end 17 18 def update 19 @user = User.find(params[:id]) 20 if @user.update(user_params) 21 redirect_to user_path(@user) 22 else 23 render :edit 24 end 25 end 26 27 private 28 def user_params 29 params.require(:user).permit(:username, :email, :profile, :profile_image) 30 end 31 32end

routes

1Rails.application.routes.draw do 2 devise_for :users 3 root to: "home#index" 4 resources :users  5 resources :posts 6end

試したこと

いいね機能で実装で追加したコードを全て削除。
bundle install上手く動く。
rails sとrails db:migrateでは同じ(ArgumentError)が出ます。

補足情報(FW/ツールのバージョンなど)

Rails 6.1.3
Ruby 2.6.3

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

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

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

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

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

guest

回答1

0

ベストアンサー

'users ' is not a supported controller name.とありますが、このusersの次に入っている文字は全角スペースです。

ルーティング指定のresources :users に全角スペースが混入しています。

(Rubyでは、全角スペースもメソッド名や変数名などに使える、単なるスペースとして扱われない文字です)

投稿2021/04/07 01:41

編集2021/04/07 01:43
maisumakun

総合スコア145183

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

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

kmryshk

2021/04/07 01:48

ありがとうございました! そういうことだったんですね。 無事戻りました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問