実現したいこと
タイトル、コンテンツ、解答の保存をさせたい
発生している問題・分からないこと
パラメーターの中に情報は入っていますが、保存ボタンを押しても該当するページに遷移できず、かつデーターベースにも保存されません。
該当のソースコード
controller
1def new 2 @ktest = Ktest.new 3 end 4 5 def create 6 @ktest = Ktest.new(ktest_params) 7 if @ktest.save 8 redirect_to root_path 9 else 10 render :new, status: :unprocessable_entity 11 end 12 end 13 14def ktest_params 15 params.require(:ktest).permit(:title, :content, :answer) 16end
db>migrate
1class CreateKtests < ActiveRecord::Migration[7.0] 2 def change 3 create_table :ktests do |t| 4 t.string :title 5 t.text :content 6 t.text :answer 7 t.references :user, null: false, foreign_key: true 8 t.timestamps 9 end 10 end 11end 12
routes
1 resources :ktests 2
試したこと・調べたこと
上記の詳細・結果
CHATGPTに確認してみたところ
バリデーションエラー: モデルに設定されているバリデーションが、保存しようとしているデータに違反している可能性があります。たとえば、必須フィールドが空白であったり、一意性が保証されているフィールドが重複している場合などです。バリデーションエラーが発生している場合、保存は行われずにレコードが作成されません。
トランザクションの問題: データベーストランザクションが正しく処理されていない場合、保存が失敗する可能性があります。トランザクションがロールバックされているか、コミットされていない可能性があります。
コールバックの問題: 保存の前後に実行されるモデルのコールバックが失敗している場合、保存が中断される可能性があります。たとえば、before_saveやbefore_createなどのコールバックが問題を引き起こしている可能性があります。
セキュリティ制約: アクセス権の問題やセキュリティ制約により、ユーザーがデータを保存する権限がない場合、保存が失敗します。
データベース接続の問題: データベース接続に問題がある場合、保存が失敗する可能性があります。データベースが正しく設定されていることを確認し、接続が正常に行われているかを確認してください。
補足
特になし
0 コメント