LoginSignup
1
0

More than 1 year has passed since last update.

【binding.pry】エラーは出ないけど、画像投稿出来ない時の対処法

Last updated at Posted at 2022-06-12

前提

この記事のVS codeにインストールしたrails6.0.0を使用しています。
私のオリジナルアプリケーション(躓いたこと)を用いて、誰かの役に立つ記事になればと思います。

結論

binding.pry で一時停止をして、パラーメータをチェックする。
※Gemfileに「gem 'pry-rails'」を記入し、「bundle install」を行う必要あり。
MVCを理解し、間違いを探す方法を習得する方法を習得する。

アプリケーション概要

私は写真記録のオリジナルアプリを作成しました。
ユーザー登録をしているメンバーで日本一周の写真を記録するためのアプリケーションになります。

内容

投稿しようと思ったが、情報が投稿されない。

投稿処理
 def create
   @prototype = Prototype.new(prototype_params)
    if @prototype.save
      redirect_to root_path
    else
      render :new
    end
  end

どうしてもelseに入ってしまい、saveができない。
条件式に入る前に「binding.pry」で一時停止し、パラメーターを確認する。
@prototype の中身を確認すると・・・

@prototypeの中身の確認
[2] pry(#<PrototypesController>)> @prototype
=> #<Prototype:0x00007f7e0a7960c8
 id: nil,
 title: "hoge1",
 prefecture_id: 2,
 created_at: nil,
 updated_at: nil>

imageが無い・・・
paramsの中身も確認すると・・・

[1] pry(#<PrototypesController>)> params
=> <ActionController::Parameters {"authenticity_token"=>"WY1QbFTGg8VbpOKOhEZF4tSjk05Sy4T5YzAhWYbnEZgmriZ8GaI2764yXaVsaVJ9eZFK6f7i3iQ6Q+5sHCnABQ==", "prototype"=><ActionController::Parameters {"title"=>"hoge1", "prefecture_id"=>"2", "image"=>#<ActionDispatch::Http::UploadedFile:0x00007f7e097b6bd0 @tempfile=#<Tempfile:/var/folders/bd/d59l1pvn1jqdqlv9lshrsswh0000gn/T/RackMultipart20220610-15050-3h6jx4.jpg>, @original_filename="IMG_7163.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"prototype[image]\"; filename=\"IMG_7163.jpg\"\r\nContent-Type: image/jpeg\r\n">} permitted: false>, "commit"=>"投稿する", "controller"=>"prototypes", "action"=>"create"} permitted: false>

paramsの中には、imageが入っているのでprivateで何か間違いがあるか?
結局はmodelの記述に問題がありました。

最後に改めて、「MVCを理解し、間違いを探す方法を習得する方法を習得する。」これを強く感じました。

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0