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

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

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

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

Ruby on Rails

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

Q&A

解決済

1回答

2949閲覧

Railsでcarrierwaveのgemを使った画像表示をしたいです!

hatsu

総合スコア1809

Ruby

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

Ruby on Rails

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

1グッド

0クリップ

投稿2017/10/14 05:17

現在、Ruby on Rails5 、ruby 2.4.0で以下のgemを入れて画像表示を試みています。

ruby

1gem 'carrierwave' 2gem 'rmagick', require: 'RMagick'

しかし画像の表示をさせようとすると

html

1<img src="/#&lt;ActionDispatch::Http::UploadedFile:0x007ff027f33968&gt;" class="prof_top_image">

となり、表示がされないです。

rails cにてコンソールで保存されているカラムを見ると以下のような型で保存がされています。
で特に画像の保存されているカラムは以下です。

profimage: "#<ActionDispatch::Http::UploadedFile:0x007ff025682...",

今、表示のさせ方として以下のようにパスを設定し行っています。

html

1<img src="/<%= "#{@user.profimage}" %>" class="prof_top_image">

画像の表示について、色々調べて見るもののどれが正しい情報かもわからず解決方法が見つからないです。
このような保存から正しく表示させる方法について、
わかる方、解決方法に心当たりある方、どんな些細なことでも構いませんのでご教授いただけますとありがたく存じます。ぜひともよろしくお願いいたします。

gesorein👍を押しています

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

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

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

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

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

gouf

2017/10/14 06:29

表示する前段階、アップロードされたファイルを保存していない可能性は考えられませんか? (アップロードファイルの受け取りと保存が終わっていれば、すでにファイルのpath が表示されているはずです)
hatsu

2017/10/14 06:35

ありがとうございます。mount_uploader :profimage, ImageUploaderの追加がはじめにエラーになっていたことからコメントアウトしていたのですが、コメントアウトを外したところ正しい名前で表示されパスが通りうまく行きました。改めてありがとうございました。
gouf

2017/10/14 06:39

(解決した場合、どのようにして解決したのか回答し自回答をベストアンサーに設定しましょう!)
guest

回答1

0

自己解決

mount_uploader :profimage, ImageUploader
がコメントアウトされていたためのエラーでした
見てくださった方々、コメントをくださった方々、誠にありがとうございます。

ruby

1class User < ApplicationRecord 2 3 devise :database_authenticatable, :registerable, 4 :recoverable, :rememberable, :trackable, :validatable, 5 :lockable, :timeoutable, :omniauthable, 6 omniauth_providers: [:twitter] 7 8 mount_uploader :profimage, ImageUploader 9 def self.from_omniauth(auth) 10 find_or_create_by(provider: auth["provider"], uid: auth["uid"]) do |user| 11 user.provider = auth["provider"] 12 user.uid = auth["uid"] 13 user.username = auth["info"]["nickname"] 14 user.profimage = user.uid+"jpg" 15 user.profile = auth["info"]["description"] 16 end 17 end 18 19 def self.new_with_session(params, session) 20 if session["devise.user_attributes"] 21 new(session["devise.user_attributes"]) do |user| 22 user.attributes = params 23 end 24 else 25 super 26 end 27 end 28 29 def update_without_current_password(params, *options) 30 params.delete(:current_password) 31 32 if params[:password].blank? && params[:password_confirmation].blank? 33 params.delete(:password) 34 params.delete(:password_confirmation) 35 end 36 37 result = update_attributes(params, *options) 38 clean_up_passwords 39 result 40 end 41end 42

投稿2017/10/14 06:38

hatsu

総合スコア1809

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問