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

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

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

Ruby on Railsは、Rubyにより構築されたオープンソースのWebアプリケーションフレームワークである。 version 3.2.0は2012年1月2日にリリースされた。

Q&A

1回答

186閲覧

DBに保存できるようにしたい

okakatuo

総合スコア2

Ruby on Rails 3.2.0

Ruby on Railsは、Rubyにより構築されたオープンソースのWebアプリケーションフレームワークである。 version 3.2.0は2012年1月2日にリリースされた。

0グッド

0クリップ

投稿2024/01/23 19:30

実現したいこと

commentテーブルに保存できるようにしたい

発生している問題

DB保存機能を実装中、遷移はできるのですがDBに保存されないという問題が発生しました。

コントローラー(該当箇所のみ) def create @comment = Comment.new(comment_params) if @comment.save redirect_to users_path else render :new, status: :unprocessable_entity end end private def comment_params params.require(:comment).permit(:birthdate, :strengths, :weaknesses, :image, :message).merge(user_id: current_user.id)ソースコード モデル class Comment < ApplicationRecord has_one_attached :image validates :image, presence: true validates :strengths, presence: true validates :weaknesses, presence: true validates :message, presence: true belongs_to :user end マイグレーションファイル class CreateComments < ActiveRecord::Migration[7.0] def change create_table :comments do |t| t.text :message, null: false t.date :birthdate, null: false t.text :strengths, null: false t.text :weaknesses, null: false t.references :user, null: false, foreign_key: true t.timestamps end end end ブラウザ上で遷移した際のログ(該当箇所のみ抜粋) Parameters: {"authenticity_token"=>"[FILTERED]", "user"=>{"image"=>#<ActionDispatch::Http::UploadedFile:0x00007f1970e14610 @tempfile=#<Tempfile:/tmp/RackMultipart20240124-34762-ggewrf.jpg>, @content_type="image/jpeg", @original_filename="staff1.jpg", @headers="Content-Disposition: form-data; name=\"user[image]\"; filename=\"staff1.jpg\"\r\nContent-Type: image/jpeg\r\n">, "strengths"=>"根性", "weaknesses"=>"器用貧乏", "birthdate(1i)"=>"1992", "birthdate(2i)"=>"9", "birthdate(3i)"=>"18", "message"=>"gannbare"}, "commit"=>"SEND"} User Load (0.5ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 3 ORDER BY `users`.`id` ASC LIMIT 1 Redirected to http://localhost:3000/

試したこと

・トラザクションの検証
・binding.pryを使用してのデバック (createアクションに記述したが反応しなかった)
・パラメーターの確認
・バリデーションの確認
・ログの確認
・ブラウザ上でのエラーの有無>

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

卒業制作で簡素なオリジナルアプリを作成しています。rails 7.0.0 を使用しています。

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

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

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

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

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

guest

回答1

0

createアクションに記述したが反応しなかった

別なところでリダイレクトが駆動されている可能性があります。たとえば、ログイン機能を付けていたけどログアウト状態から送信した、なんてことはないでしょうか?

投稿2024/01/23 23:30

maisumakun

総合スコア145199

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

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

maisumakun

2024/01/23 23:31

> 該当箇所のみ アクション以外にbefore_action、あるいはApplicationControllerでなにか定義されていたりはしませんでしょうか?
okakatuo

2024/01/24 02:03

教えていただきありがとうございます。 ログイン機能を付けていたけどログアウト状態から送信したということはないと思います。ログイン状態であることは確認できています。 ApplicationControllerでなにか定義されていたりはしませんでしょうか?ということなのですが、ApplicationControllerで before_actionは2つだけ設定していました。定義されている内容で before_action :authenticate_user!という内容の影響でしょうか? before_action :authenticate_user! before_action :configure_permitted_parameters, if: :devise_controller?
maisumakun

2024/01/24 02:35

ブラウザ側で見たときに、200を返していますか?それとも、何かしらのエラーになっていませんか? (開発ツールのNetworkタブで見ればステータスコードも見えます)
okakatuo

2024/01/24 02:49

ログのリダイレクト部分でRedirected to http://localhost:3000/ Filter chain halted as :require_no_authentication rendered or redirected Completed 302 Found in 5ms (ActiveRecord: 0.5ms | Allocations: 1562)とあり、これが別の場所にリダイレクトしているということなのでしょうか?その点以外は200で返っています。 開発者ツールではCSSエラーが表示されています。
maisumakun

2024/01/24 05:02

そうですね、このrequire_no_authenticationがリダイレクトを行っているものと思われます。
okakatuo

2024/01/24 13:18

require_no_authenticationが引き起こしているエラーを調べると、ユーザーが既に認証済みであり、:require_no_authentication フィルターが適用されているため、特定のアクションが実行されずにリダイレクトが行われている。とあったのでbefore_actionをコメントアウトしたり、ログアウトして入りなおしたりしたのですが、改善されず。アプリを作り直してみたのですが、やはり同じエラーに躓きます。ルーティング、バリデーションも問題なさそうなのですが、何か原因として考えられることがあれば教えてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問