前提・実現したいこと
ruby on railsで、災害情報(damages)を記録・収集できるアプリを制作中です。
アプリの機能として、投稿画像から、当該投稿画像が撮影された場所が、マップにプロットされるよう、実装を試みています。
画像のEXIFフォーマットから、exifrというgemを使用して緯度・経度を取得してデータベースに保存しようとしており、試しに画像を添付して投稿したところ、NameErrorが発生しました。
このNameErrorがなぜ発生したのか、及びエラー解消方法についてご教示いただきたいです。
発生している問題・エラーメッセージ
NameError in DamagesController#create uninitialized constant EXIFR::JPEG
該当のソースコード
DamagesController
1class DamagesController < ApplicationController 2 3 def index 4 @damages = Damage.all 5 end 6 7 def new 8 @damage = Damage.new 9 end 10 11 def create 12 @exif = EXIFR::JPEG.new(damage_params[:image]) 13 @damage = Damage.new(damage_params.merge({latitude: @exif.gps_lat, longitude: @exif.gps_lng})) 14 15 if @damage.save 16 redirect_to damages_path, notice: "ユーザー「#{@damage.title}」を登録しました。" 17 else 18 render :new 19 end 20 21 end 22 23 def show 24 @damage = Damage.find(params[:id]) 25 end 26 27 def edit 28 @damage = Damage.find(params[:id]) 29 end 30 31 def update 32 @damage = Damage.find(params[:id]) 33 34 if @damage.update(damage_params) 35 redirect_to damages_path, notice: "ユーザー「#{@damage.title}」を更新しました。" 36 else 37 render :new 38 end 39 end 40 41 def destroy 42 @damage = Damage.find(params[:id]) 43 @damage.destroy 44 redirect_to damages_path, notice: "ユーザー「#{@damage.titile}」を削除しました。" 45 end 46 47 private 48 def damage_params 49 params.require(:damage).permit(:title, :place, :description, :amount, :image).merge(user_id: current_user.id) 50 end 51 52end
試したこと
エラー文で検索して対処方法を調べたのですが、なぜエラーが発生するのかわかりませんでした。
申し訳ありません。
・画像の投稿には、Active Strageを使用しています。
・gem 'exifr'をインストール済みです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。