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

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

ただいまの
回答率

88.33%

Rails 画像表示

受付中

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 397

shuichi_A

score 0

前提・実現したいこと

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 %>
class CreateBoards < ActiveRecord::Migration[6.0]
  def change
    create_table :boards do |t|
      t.string :name
      t.string :city
      t.text :body
      t.string :image

      t.timestamps
    end
  end
end
  before_action :set_target_board, only: %i[show edit update destroy ]


  def index
    @boards = Board.all
  end

  def new
    @board = Board.new
  end

  def create
    board = Board.create(board_params)

    redirect_to board
  end

  def show
    @board = Board.find(params[:id])
  end

  def edit
    @board = Board.find(params[:id])
  end

  def update
    board = Board.find(params[:id])
    board.update(board_params)

    redirect_to board
  end

  def destroy
    board = Board.find(params[:id])
    board.delete

    redirect_to boards_path
  end



  private




  def board_params
    params.require(:board).permit(:name, :city, :body, :image)
  end

  def set_target_board
    @board = Board.find(params[:id])
  end

end


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

補足

# == Schema Information
#
# Table name: boards
#
#  id         :bigint           not null, primary key
#  body       :text(65535)
#  city       :string(255)
#  image      :string(255)
#  name       :string(255)
#  created_at :datetime         not null
#  updated_at :datetime         not null
#
class Board < ApplicationRecord
  validates :name, presence: true, length: { maximum: 20 }
  validates :body, presence: true, length: { maximum: 1000 }
end
--------------------------+----------------------------+----------------------------+
| id | name                        | city                                                      | body            | image                                                    | created_at                 | updated_at                 |
+----+-----------------------------+-----------------------------------------------------------+-----------------+----------------------------------------------------------+----------------------------+----------------------------+
|  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 | ひぐらしのなく頃に              | 岐阜県大野郡白川村荻町1086 白川郷                         | 圭一の家        | #<ActionDispatch::Http::UploadedFile:0x00007fac59b6c080> | 2020-05-13 16:29:52.713192 | 2020-05-13 16:29:52.713192 |
+----+-----------------------------+-----------------------------------------------------------+-----------------+----------------------------------------------------------+----------------------------+----------------------------+


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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

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

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

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • winterboum

    2020/05/14 08:02

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

    キャンセル

  • gnfreeworks

    2020/05/14 11:52

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

    キャンセル

回答 1

0

テーブルのimageカラムに

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


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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

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

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

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/06/04 02:27

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

    キャンセル

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

  • ただいまの回答率 88.33%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

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