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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

632閲覧

NameErrorを解消したいです 投稿画像から緯度・経度情報の取得に際して

t.togashi

総合スコア22

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2019/08/10 05:42

前提・実現したいこと

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'をインストール済みです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

https://github.com/ggreer/jekyll-gallery-generator/issues/36#issuecomment-321992302

によると、

require 'exifr/jpeg' require 'rmagick' include Magick

とどこかに書いておくといい、みたいなのがありますね。
試してみてはいかがでしょうか。

投稿2019/08/10 05:49

mokemokechicken

総合スコア948

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問