rubyにおいて、情報の保存をしたい

実現したいこと

タイトル、コンテンツ、解答の保存をさせたい

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

パラメーターの中に情報は入っていますが、保存ボタンを押しても該当するページに遷移できず、かつデーターベースにも保存されません。

該当のソースコード

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 コメント