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

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

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

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

Q&A

1回答

2891閲覧

Rails 画像表示

shuichi_A

総合スコア0

Ruby on Rails

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

0グッド

0クリップ

投稿2020/05/13 17:35

編集2020/05/14 09:11

前提・実現したいこと

Ruby on Railsを現在独学で勉強して、ポートフォリオ を作成中の初心者のものです。
railsで現在掲示板を作成しています。
投稿する機能に画像を保存・表示する機能でトラブルが発生しました。

発生している問題・エラーメッセージ

他の名前や場所は出力されるのですが画像だけ
「#ActionDispatch::Http::UploadedFile:0x00007fac59b7c2a0」と出てきて画像が表示されません
イメージ説明

該当のソースコード

<% @boards.each do |board| %> <tr> <td><%= board.image %></td> <td><%= board.name %></td> <td><%= board.city %></td> <td><%= board.created_at.to_s(:datetime_jp) %></td> <td><%= link_to '詳細', board, class: 'btn btn-outline-dark' %></td> </tr> <% end %>

migrate

1class CreateBoards < ActiveRecord::Migration[6.0] 2 def change 3 create_table :boards do |t| 4 t.string :name 5 t.string :city 6 t.text :body 7 t.string :image 8 9 t.timestamps 10 end 11 end 12end

class

1 before_action :set_target_board, only: %i[show edit update destroy ] 2 3 4 def index 5 @boards = Board.all 6 end 7 8 def new 9 @board = Board.new 10 end 11 12 def create 13 board = Board.create(board_params) 14 15 redirect_to board 16 end 17 18 def show 19 @board = Board.find(params[:id]) 20 end 21 22 def edit 23 @board = Board.find(params[:id]) 24 end 25 26 def update 27 board = Board.find(params[:id]) 28 board.update(board_params) 29 30 redirect_to board 31 end 32 33 def destroy 34 board = Board.find(params[:id]) 35 board.delete 36 37 redirect_to boards_path 38 end 39 40 41 42 private 43 44 45 46 47 def board_params 48 params.require(:board).permit(:name, :city, :body, :image) 49 end 50 51 def set_target_board 52 @board = Board.find(params[:id]) 53 end 54 55end

初めてこの質問をサービスを使うので、至らない点がありますが、ご回答お待ちしております。

補足

ruby

1# == Schema Information 2# 3# Table name: boards 4# 5# id :bigint not null, primary key 6# body :text(65535) 7# city :string(255) 8# image :string(255) 9# name :string(255) 10# created_at :datetime not null 11# updated_at :datetime not null 12# 13class Board < ApplicationRecord 14 validates :name, presence: true, length: { maximum: 20 } 15 validates :body, presence: true, length: { maximum: 1000 } 16end

table

1--------------------------+----------------------------+----------------------------+ 2| id | name | city | body | image | created_at | updated_at | 3+----+-----------------------------+-----------------------------------------------------------+-----------------+----------------------------------------------------------+----------------------------+----------------------------+ 4| 3 | Fate/stay night | 兵庫県神戸市中央区北野町3丁目13−3 | 風見鶏の館 | #<ActionDispatch::Http::UploadedFile:0x00007fac59b7c2a0> | 2020-05-08 14:58:50.611866 | 2020-05-08 14:58:50.611866 | 5| 5 | ひぐらしのなく頃に | 岐阜県大野郡白川村荻町1086 白川郷 | 圭一の家 | #<ActionDispatch::Http::UploadedFile:0x00007fac59b6c080> | 2020-05-13 16:29:52.713192 | 2020-05-13 16:29:52.713192 | 6+----+-----------------------------+-----------------------------------------------------------+-----------------+----------------------------------------------------------+----------------------------+----------------------------+ 7

補足を加えました。上がBoard classで下がBoardテーブルです。

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

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

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

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

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

winterboum

2020/05/13 23:02

写真の取り込み方に問題がありそうです。 class Board を載せてください
gnfreeworks

2020/05/14 02:52

boardsテーブルにはどのような名前で画像が保存されてる状態ですか?
guest

回答1

0

テーブルのimageカラムに

#<ActionDispatch::Http::UploadedFile:0x00007fac59b7c2a0>

という形でデータが保存されていますが、ここから画像本体の情報を取得する処理が必要みたいです。
このサイトに説明がありましたので参考にしてみて下さい。
https://cre8cre8.com/rails/upload-image.htm#hl4

投稿2020/05/14 10:47

gnfreeworks

総合スコア306

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

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

shuichi_A

2020/06/03 17:27

返信が遅くなってしまいすみません。 色々と試した結果下記のサイトで動かしたらちゃんとアップロードすることが出来ました。 https://qiita.com/STHEXA/items/05a492bd9cf4cf31ba98 またDBを見るとActionDispatch::Http::UploadedFile:から普通の画像のJPGにデータの名前が変わってました。 丁寧な回答ありがとうございました。また丁寧な回答してくださったのに連絡が遅くなってしまいすみませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問