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

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

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

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

Q&A

解決済

railsで画像の変更が反映されない

tan1
Jdbz

総合スコア1

Ruby on Rails 6

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

2回答

0グッド

0クリップ

304閲覧

投稿2022/11/03 08:53

railsでログイン機能についての問題です。

ゲストログインをするとマイページにユーザーアイコンが表示されるように設定しています。
app/assets/images/内の画像ファイルを読み込んで表示させています。
この画像ファイルの中身を変えてもlocalhostでは変更が反映されず、herokuの本番環境では画像じたいが表示されません。

localhostで画像の変更が反映されていないのが、herokuのも影響しているのだと思います。

lsof -wni tcp:3000
のコマンドでlocalを一度切断して、新しくloxalhostを立ち上げても画像の変更が反映されません。
試しに他の文章を変えてみると、それは変更が反映されます。
その画像の変更だけが反映されません。

いかが関係ありそうなファイルとコードです。

app/views/public/show.html.erb

1<h2 class="font-weight-bold mb-3">mypage</h2> 2 <!--プロフィール画像--> 3 <%= image_tag @end_user.get_profile_image(150,150), class: "rounded-circle img" %> 4 <!--ユーザー名--> 5 <p><%= @end_user.name %></p>

app/models/user.rb

1# プロフィール画像の設定 2 has_one_attached :profile_image 3 4 # プロフィール画像(デフォルト)の設定 5 def get_profile_image(width, height) 6 unless profile_image.attached? 7 file_path = Rails.root.join("app/assets/images/pro.jpg") 8 profile_image.attach(io: File.open(file_path), filename: "default-image.jpg", content_type: "image/jpeg") 9 end 10 profile_image.variant(resize_to_limit: [width, height]).processed 11 end 12 13 # ゲストログインの設定 14 def self.guest 15 find_or_create_by!(name: "guestuser", email: "guest@example.com") do |user| 16 user.password = SecureRandom.urlsafe_base64 17 user.name = "guestuser" 18 end 19 end

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答2

0

自己解決

ありがとうございます。
無事反映させることができました。
herokuの方も解決しました。

投稿2022/11/03 09:38

tan1

総合スコア1

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

0

profile_image.attach(i
していますから、assetsにあるimageをcopyしたものを表示しています、
ですから assetsのものを変更しても反映しません。
herokuは一旦落しると画像fileは削除されます。永続的に残すには S3など外部に保存する必要があります。

「マイページにユーザーアイコンが表示される」というのでユーザ毎にことなる画像かとおもったのですが、そうではなくて同じ画像で良いようですね。
でしたら assets の画像をそのまま使いましょう。
<%= image_tag 'pro.jpg', class: "rounded-circle img" %>
サイズの指定は CSS で行ってください

投稿2022/11/03 09:15

winterboum

総合スコア22586

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

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

ただいまの回答率
86.02%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Ruby on Rails 6

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