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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Devise

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

Flash

Flashは、Webページにアニメーション、ビデオ、また対話型のアプリケーションを埋め込むためにAdobe社が提供しているクロスプラットフォームのインターネットマルチメディアランタイムです。

Ruby on Rails 6

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

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

Q&A

解決済

1回答

3533閲覧

uninitialized constant エラーを解決できません。

kohya_suzuki

総合スコア24

Devise

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

Flash

Flashは、Webページにアニメーション、ビデオ、また対話型のアプリケーションを埋め込むためにAdobe社が提供しているクロスプラットフォームのインターネットマルチメディアランタイムです。

Ruby on Rails 6

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

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

0グッド

0クリップ

投稿2021/05/21 12:16

・やりたいこと
問題を作成し、保存ボタンを押すと作成した問題をテーブルに保存し、画面がif文で転移、フラッシュを表示するという機能を作成したい。

・エラー内容

NameError in QuestionsController#create uninitialized constant QuestionsController::Questions

・試したこと
controllerの名前が複数形のsになっているか
モデル名は大文字から始めているか
テーブル名は小文字から始まる複数形になっているかの確認。
ルーティング(routes.rb)の記述の確認
マイグレーションファイルの確認
モデルファイルの確認

参考先サイト https://pikawaka.com/rails/rails_g_model

あえて書き間違ってみるなどしてみましたが、うまくいきません。
パーツは足りていると思っています。辻褄の合わないところがエラーを起こしているように感じていますが、見当たりません。
どこがエラーを起こしている原因なのかご指摘いただきたいです。
よろしくお願いします。

☆q/app/views/home/show.html.erb <%= notice %> <p>ユーザー用ページです</p> <def class="user_page"> <h1>こんにちは、<%= current_user.username %>さん</h1> <def class="question_create"> <%= link_to '問題を作成する' , '/home/question_create/' %> </def> </def>
☆q/app/controllers/questions_controller.rb class QuestionsController < ApplicationController def create @post = Questions.new(question_params) if @post.save flash[:notice] = "文章を作成しました。" redirect_to question_create else flash[:alert] = "内容に誤りがあります。" render home/question_create end end def question_params params.require(:question).permit(:id, :content) end
☆q/app/models/question.rb class Question < ApplicationRecord end
☆q/db/migrate/20210425054329_create_questions.rb class CreateQuestions < ActiveRecord::Migration[6.1] def change create_table :questions do |t| t.integer :id t.text :content t.datetime :date t.integer :level t.boolean :enpathy t.timestamps end end end
☆/q/config/routes.rb Rails.application.routes.draw do devise_for :users root 'home#index' get 'home/index' get 'home/show' post '/home/question_create' => 'questions#create' get '/home/question_create'=> 'questions#create' # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html end

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

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

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

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

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

guest

回答1

0

ベストアンサー

エラーメッセージのとおりです。

Ruby上でのモデルを扱うクラスの名前はQuestionsではなくQuestionです。

投稿2021/05/21 13:26

maisumakun

総合スコア145203

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

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

kohya_suzuki

2021/05/26 12:17

回答いただき、ありがとうございます。 @post = Question.new(question_params)の修正をすることで同じエラーは出なくなりました。 ここを修正すると他のActionController::ParameterMissing in QuestionsController#create param is missing or the value is empty: questionというエラーが出ることを知っていたのですが、どちらのエラーが出ていることが正解なのかの判断がつかず困っていました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問