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

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

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

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

Ruby on Rails

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

Active Record

Active Recordは、一つのオブジェクトに対しドメインのロジックとストレージの抽象性を結合するデザインパターンです。

ImageMagick

ImageMagickとは、画像の表示や操作を行うオープンソースのソフトウェアです。プログラムはCで書かれており、GIFやJPEG、PDFなど画像ファイルフォーマット100種類以上に対応しています。

Q&A

解決済

1回答

556閲覧

railsで画像が変な文字になって表示されてしまう

divclass123

総合スコア35

Ruby

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

Ruby on Rails

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

Active Record

Active Recordは、一つのオブジェクトに対しドメインのロジックとストレージの抽象性を結合するデザインパターンです。

ImageMagick

ImageMagickとは、画像の表示や操作を行うオープンソースのソフトウェアです。プログラムはCで書かれており、GIFやJPEG、PDFなど画像ファイルフォーマット100種類以上に対応しています。

0グッド

0クリップ

投稿2020/12/07 06:16

前提・実現したいこと

railsで画像が変な文字になって表示されてしまいます

イメージ説明
この

#<ActiveStorage::Attached::One:0x00007fb01e07e1c8>

 って部分が画像がおかしくなってる場所です

これをしっかりと画像として表示したいです

該当のソースコード

users/show_follow.html.erb

ruby

1 2<div class="row"> 3 <aside class="col-md-4"> 4 <section class="user_info"> 5 <%= @user.image if @user.image.attached? %> 6 <h1><%= @user.nickname %></h1> 7 <span><%= link_to "view my profile", @user %></span> 8 <span><b>投稿数:</b> <%= @user.drinks.count %></span> 9 </section> 10 <section class="stats"> 11 <%= render 'shared/stats' %> 12 <% if @users.any? %> 13 <div class="user_avatars"> 14 <% @users.each do |user| %> 15 <%= user.image if user.image.attached? %> 16 <% end %> 17 </div> 18 <% end %> 19 </section> 20 </aside> 21 <div class="col-md-8"> 22 <% if @users.any? %> 23 <ul class="users follow"> 24 <%= render @users %> 25 </ul> 26 <% end %> 27 </div> 28</div>

<%= @user.image if @user.image.attached? %>

って部分が文字で表示されてしまいます

users_controller

ruby

1class UsersController < ApplicationController 2 include SessionsHelper 3 before_action :set_user, only: [:show,:edit,:update,:correct_user] 4 before_action :logged_in_user, only: [:index,:edit,:update,:following,:followers] 5 before_action :correct_user, only: [:edit, :update] 6 7 def index 8 @users = User.all 9 end 10 11 def new 12 @user = User.new 13 end 14 15 def create 16 @user = User.new(user_params) 17 if @user.save 18 log_in(@user) 19 redirect_to @user 20 else 21 render 'new' 22 end 23 end 24 25 def show 26 @user = User.find(params[:id]) 27 @drinks = @user.drinks 28 end 29 30 def edit 31 end 32 33 def update 34 if @user.update(user_params) 35 redirect_to @user 36 else 37 render 'edit' 38 end 39 end 40 41 def destroy 42 user = User.find(params[:id]) 43 #binding.pry 44 user.destroy 45 redirect_to root_url 46 end 47 48 def following 49 # フォローしてるユーザーの表示 50 @user = User.find(params[:id]) 51 @users = @user.following 52 render 'show_follow' 53 end 54 55 def followers 56 # フォロワーの表示 57 @user = User.find(params[:id]) 58 @users = @user.followers 59 render 'show_follow' 60 end 61 62 private 63 def user_params 64 params.require(:user).permit(:nickname,:email,:password,:password_confirmation,:image) 65 end 66 67 def set_user 68 @user = User.find(params[:id]) 69 end 70 71 def correct_user 72 redirect_to(root_url) unless current_user?(@user) 73 end 74end

users/show.html.erb

ruby

1 2<% if current_user?(@user) %> 3 <div class="user-profile"> 4 <h2 class="user-profile-name"><%= current_user.nickname %></h2> 5 <h2><%= image_tag @user.image.variant(resize: '100x100'),class: 'user-img' if @user.image.attached? %></h2> 6 <div class="user-edit"> 7 <%= link_to "プロフィールを編集",edit_user_path(@user)%> 8 </div> 9 </div> 10<% end %> 11 12 13<% unless current_user?(@user) %> 14 <div id="follow_form"> 15 <% if current_user.following?(@user) %> 16 <%= render 'unfollow' %> 17 <% else %> 18 <%= render 'follow' %> 19 <% end %> 20 </div> 21<% end %> 22 23<% @user ||= current_user %> 24<div class="stats"> 25 <a href="<%= following_user_path(@user) %>"> 26 <strong id="following" class="stat"> 27 <%= @user.following.count %> 28 </strong> 29 following 30 </a> 31 <a href="<%= followers_user_path(@user) %>"> 32 <strong id="followers" class="stat"> 33 <%= @user.followers.count %> 34 </strong> 35 followers 36 </a> 37</div> 38

試したこと

rails 画像 #ActiveStorage::Attached::One:0x00007fb01e07e1c8
とかで調べても
「active storageの使いかた」
とか同じエラーを解決した記事は見つかりませんでした

48: def following 49: # フォローしてるユーザーの表示 50: 51: @user = User.find(params[:id]) 52: @users = @user.following => 53: binding.pry 54: render 'show_follow' 55: end [1] pry(#<UsersController>)> @user => #<User:0x00007fb013662ec8 id: 6, nickname: "セイレーン", email: "harasou@gmail.com", created_at: Sat, 28 Nov 2020 12:09:16 UTC +00:00, updated_at: Sat, 28 Nov 2020 12:09:16 UTC +00:00, password_digest: [FILTERED], remember_digest: nil> [2] pry(#<UsersController>)> @user.image => #<ActiveStorage::Attached::One:0x00007fb01e0bde40

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

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

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

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

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

m.ts10806

2020/12/07 06:40

blobオブジェクトがそのまま表示されただけに見えますが(決して変な、意味のない羅列ではないです)、DBの定義はどうなってますか? また、何を参考にこのコードを書きましたか?
divclass123

2020/12/07 06:52

せっかく考えて下さったのに申し訳ありません、、、 僕の凡ミスでした 画像をうまく表示できてる部分とできてない部分をもっと比べるべきでした、、、。 (てっきりコントローラーの方ばかりに注意してた、、、) またよろしくお願いします、、、!!
m.ts10806

2020/12/07 06:58

おそらく、もっとチュートリアルなりガイドなりをきちんと確認された方が良いです。 マニュアルですから。
guest

回答1

0

自己解決

<%= user.image%>
とかにしてたが
<%= image_tag user.image%>
とかにするべきだった

投稿2020/12/07 06:51

divclass123

総合スコア35

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問