###環境
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
二つのコードを追記すればエラーが解消されました