・やりたいこと
問題を作成し、保存ボタンを押すと作成した問題をテーブルに保存し、画面が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
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/26 12:17