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

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

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

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

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Q&A

1回答

1190閲覧

本番環境で投稿した画像がエラーで表示できない (carrierwave)

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby on Rails 6

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

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

0グッド

0クリップ

投稿2022/12/30 03:58

編集2022/12/31 13:01

画像を投稿できるアプリを作成したのですが、本番環境(heroku)で投稿した画像をマイページで確認できる機能を確認しようとしたところ、エラーが発生しました。

herokuのログを確認するとimage_tagの箇所でエラーが起きておりました。
ActionView::Template::Error (undefined method `decode' for URI:Module):
というエラーです。
調べてもdecodeに関する情報が少ないのですが、これはどういうエラーなのでしょうか?

バージョン
ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-linux]
Rails 6.1.7

エラーログ

2022-12-31T09:56:17.582496+00:00 app[web.1]: I, [2022-12-31T09:56:17.582463 #4] INFO -- : [11d421a8-a463-4609-aa8d-bcb583eb6595] Completed 500 Internal Server Error in 45ms (ActiveRecord: 12.4ms | Allocations: 18639) 2022-12-31T09:56:17.583544+00:00 app[web.1]: F, [2022-12-31T09:56:17.583499 #4] FATAL -- : [11d421a8-a463-4609-aa8d-bcb583eb6595] 2022-12-31T09:56:17.583546+00:00 app[web.1]: [11d421a8-a463-4609-aa8d-bcb583eb6595] ActionView::Template::Error (undefined method `decode' for URI:Module): 2022-12-31T09:56:17.583546+00:00 app[web.1]: [11d421a8-a463-4609-aa8d-bcb583eb6595] 66: <% @my_plans.each do |plan| %> 2022-12-31T09:56:17.583546+00:00 app[web.1]: [11d421a8-a463-4609-aa8d-bcb583eb6595] 67: <div class="card" style="width: 210px;"> 2022-12-31T09:56:17.583547+00:00 app[web.1]: [11d421a8-a463-4609-aa8d-bcb583eb6595] 68: <a href="/plans/<%= plan.id %>" target="_blank" rel="noopener noreferrer" class="text-dark"> 2022-12-31T09:56:17.583548+00:00 app[web.1]: [11d421a8-a463-4609-aa8d-bcb583eb6595] 69: <p><%= image_tag(plan.photo.url, :alt => '最新投稿') %></p> 2022-12-31T09:56:17.583548+00:00 app[web.1]: [11d421a8-a463-4609-aa8d-bcb583eb6595] 70: <div class="card-body"> 2022-12-31T09:56:17.583548+00:00 app[web.1]: [11d421a8-a463-4609-aa8d-bcb583eb6595] 71: <h5 class="card-title"><p><%= plan.user.name %></p></h5> 2022-12-31T09:56:17.583549+00:00 app[web.1]: [11d421a8-a463-4609-aa8d-bcb583eb6595] 72: <h6 class="card-text"><p><%= plan.title %></p></h6> 2022-12-31T09:56:17.583549+00:00 app[web.1]: [11d421a8-a463-4609-aa8d-bcb583eb6595] 2022-12-31T09:56:17.583550+00:00 app[web.1]: [11d421a8-a463-4609-aa8d-bcb583eb6595] app/views/users/show.html.erb:69 2022-12-31T09:56:17.583550+00:00 app[web.1]: [11d421a8-a463-4609-aa8d-bcb583eb6595] app/views/users/show.html.erb:66

エラー箇所のview

<% if @my_plans.any? %> <div class="my-page-contents"> <% @my_plans.each do |plan| %>! <div class="card" style="width: 210px;"> <a href="/plans/<%= plan.id %>" target="_blank" rel="noopener noreferrer" class="text-dark"> <p><%= image_tag(plan.photo.url, :alt => '最新投稿') %></p> ←エラー箇所 <div class="card-body"> <h5 class="card-title"><p><%= plan.user.name %></p></h5> <h6 class="card-text"><p><%= plan.title %></p></h6> </div> </a> </div> <% end %> </div> <div class="d-flex justify-content-center mb-2"> <%= paginate @my_plans %> </div> <% else %>

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

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

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

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

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

yuma.inaura

2022/12/30 05:23

- plan.photo.url の中身はどうなってますか? - localでは成功してますか? - image_tag の引数に固定のテキストを渡すとどうなりますか?
退会済みユーザー

退会済みユーザー

2022/12/30 06:59 編集

- plan.photo.url の中身はどうなってますか? 投稿した画像のファイル名が入っています。 - localでは成功してますか? localでは成功しており、表示されます。 - image_tag の引数に固定のテキストを渡すとどうなりますか? ロゴなども画像を作成しており、image_tagに固定のファイル名を渡しているのですが、 それは本番環境でも表示されました。
yuma.inaura

2022/12/30 07:00

plan.photo.url と同じURLを固定のテキストで引数として渡すとどうなりますか?
退会済みユーザー

退会済みユーザー

2022/12/31 03:13 編集

plan.photo.urlのファイル名はassets/imagesに入れておけば、表示されました。
yuma.inaura

2022/12/31 10:01 編集

eachでループしてる中の plan.photo.url に変なデータがあったりしませんでしょうか
退会済みユーザー

退会済みユーザー

2022/12/31 12:50

すみません。 追加で分かったことなのですが、プロフィール画像を表示するimage_tagも同様のエラーで表示されませんでした。 ループの中身は今、確認中です。
退会済みユーザー

退会済みユーザー

2022/12/31 13:00 編集

plan.photo.urlの中身に変なデータは入っていませんでした。 photoカラムにも拡張子までしっかり入っておりました。 以前、簡単な画像投稿アプリを作成しまして、そのアプリはherokuでも表示されました。 なのでその時と同じ、carrierwaveとcloudinaryを使用したやり方で、作成しました。
退会済みユーザー

退会済みユーザー

2023/01/01 12:12 編集

ログを消して頂きました。
yuma.inaura

2023/01/01 03:34

each の中の特定の要素でだけエラーが起こるのか、それともどの要素でもエラーが起こるのかなどから原因を切り分けられませんでしょうか
退会済みユーザー

退会済みユーザー

2023/01/01 12:18

each文のない、plans/showページで画像が確認できるか、試してみたところ同じエラーが発生しました。 つまりeach文、関係なくエラーが起きました。 上記のエラー箇所をimage_tagを外して確認してみたところ、エラーがなくなりeach文が機能したので、 投稿された画像の表示のimage_tagに限ったエラーなのかなと考えました。
退会済みユーザー

退会済みユーザー

2023/01/04 12:40 編集

.urlとで表示するmage_tagだけがdecodeのエラーが発生しました。 画像管理をしてくれるcloudinaryを入れているのですが、それがエラーに関係している 可能性がありますでしょうか?
yuma.inaura

2023/01/04 12:43

「.urlとで表示するmage_tag」って何なんでしょう? .url拡張子のファイルを image_tag で表示させようとしているということでしょうか
退会済みユーザー

退会済みユーザー

2023/01/04 23:13

=>.url拡張子のファイルを image_tag で表示させようとしているということでしょうか はい。 <p><%= image_tag(plan.photo.url, :alt => '最新投稿') %></p> のようなplan.photo.urlをimage_tagで表示させたい記述、全てがherokuでデコードエラーを起こしてしまいました。
退会済みユーザー

退会済みユーザー

2023/01/07 18:25

Completed 500 Internal Server Error in 45ms (ActiveRecord: 12.4ms | Allocations: 18639) とログに出てたりするのですが、 herokuのサーバーか、こちらのサーバー周りの設定がいけないのかなとも考えたのですが その可能性はありますか?
guest

回答1

0

Rubyのバージョン違いによるものみたいですね。
こちらのサイトでは自作でプロパティを実装して対応したようですが
参考になりませんでしょうか?
https://stackoverflow.com/questions/72183528/using-ros-apartment-gem-with-ruby-3-0-0

投稿2023/01/11 13:49

odataiki

総合スコア938

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

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

退会済みユーザー

退会済みユーザー

2023/01/12 05:16 編集

本当にすみません。moduleを書いたことがないので、教えてほしいのですが、 moduleは新しくファイルを作成するのでしょうか? それともcontrollerかmodel内に書き込むのでしょうか? !追記 lib配下内でフォルダー・ファイルを作成してそこにモジュールを記述しているのも拝見したのですが、モジュールはlib配下内に書き込むのが適切でしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問