undifind method `map` for#<ActionDispatch::Http::UplodedFile:ファイル名> Did you mean? tapエラー

82日目です。
昨日からネットでどれだけ調べても、チームメンバー、他チームに聞いても分からず、メンターに2回匙を投げられめちゃめちゃ苦しんだエラーが解決したので紹介します。

発生していたエラー

メルカリのクローンサイトで商品を出品しようとすると、下記のエラーが発生しました。
※画像の投稿機能は、「gem 'carrierwave'」を用いて実装していました。

f:id:tattaka_s:20190913223449p:plain

コントローラーやモデル、マイグレーションファイル、ビューファイル、DBとしらみつぶしに見ていったのですが、定義していないメソッド「map」についてのエラーが出てしまうのでお手上げでした。また、画像テーブルのimageカラムがストロングパラメータで許可してもらえず、商品の情報は登録されても、画像データはNULLになってしまっていました。

解決した方法

image.rb 下記の記述から

    mount_uploaders :image, ImageUploader

↓sをとる(単数形にする)

     mount_uploader :image, ImageUploader 

出品機能を作っている最中にsが紛れ込んでしまったようです。


今回のエラーは、自分がスクールで一番信頼するメンターのおかげで解決できました。
他のメンターは、自分で解決できなそうと判断すると、大して頑張らずにごまかしながら通話を終了させることが多いです。
ただし、信頼できるメンターはご自身で考えられる可能性を全て試していき、何時間かかっても絶対諦めずに解決法を一緒に探してくれます。
その姿勢に感動しましたし、そのような責任感あるエンジニアにならなければいけないと実感しました。

本日やっと商品出品の大枠は完成しました。(ちょうど3週目が終わりました)
自分のせいで進んでない部分もあったので、今は久しぶりにホッとしています。
細かな修正や合体作業が残っているので、まだ気は抜けませんが、あと1週間駆け抜けます。