2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Serializerで画像のurlをjsonで返す際に発生したエラー

Posted at

###環境
ruby '2.6.5'
rails '~> 6.0.3'
###エラー発生状況
activestrageに保存している画像のurlを取得して
jsonで返した時に発生した時のエラー
https://gyazo.com/7fbc1048f6017017c67d8415deed84d6
###エラー内容
エラー画像
https://gyazo.com/809103569c8d64a84eeab91e81b4a020

###エラーコード

Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true

###エラー和訳
リンク先のホストがありません! host パラメータを指定するか、default_url_options[:host] を設定するか、 :only_path を true に設定してください。

###解決策
まずホストってなんだっけ?ってなったので検索
参考記事
URLの構造~ホスト名、パス、パラメータ、ハッシュの成り立ちとSEO
https://www.marketechlabo.com/url-structure-for-marketer/

https://www.example.com/audio/list.php?page=2&sort_by=price
上記のurlを例にすると
https:// の部分がプロトコル
audio/list.php?がパス名(pathname)
page=2&sort_by=price がクエリ文字列となっている
他にもurlの要素はあるが今回urlを例にすると上記の構成でurlが成り立っている
他の要素もあるので見たい方は上記の参考記事を見てください

ってことで
エラー文は
rails_blob_path(object.avatar)はどこに飛ばせばいいんだ!とエラーが言っているので
下記の記事を参照して
http://sato-s.github.io/2018/08/25/active-storage-in-API.html

config/environments/development.rbに以下のコードを記述

Rails.application.routes.default_url_options[:host] = 'localhost'
Rails.application.routes.default_url_options[:port] = 3000

二つのコードを追記すればエラーが解消されました

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?