前提・実現したいこと
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ページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
0
テーブルのimage
カラムに
#<ActionDispatch::Http::UploadedFile:0x00007fac59b7c2a0>
という形でデータが保存されていますが、ここから画像本体の情報を取得する処理が必要みたいです。
このサイトに説明がありましたので参考にしてみて下さい。
https://cre8cre8.com/rails/upload-image.htm#hl4
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.33%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
質問への追記・修正、ベストアンサー選択の依頼
winterboum
2020/05/14 08:02
写真の取り込み方に問題がありそうです。
class Board を載せてください
gnfreeworks
2020/05/14 11:52
boardsテーブルにはどのような名前で画像が保存されてる状態ですか?