【Ruby】投稿画像が文字列で表示されてしまう問題の解決策
エラーは表題の通り、
本来、投稿した画像が表示されるべきはずの場所に
「/public/uploads/post/image/○○.jpg」
といったような形で、
ファイルが存在するディレクトリが表示されてしまうものです。
※エラー画面は出ません。
原因
postsテーブルに「image」という名前のカラムを作ったため。
解決策
カラム名を「image」にした場合に限り、「to_sメソッド」で表示を文字列に変換する必要がある。
※to_sメソッド……文字列以外のオブジェクトを文字列に変換できるメソッド
解説
【修正前】index.html.haml
問題は「image」というカラム名だったのでimage_tagを使い
以下のように修正したところ画像が表示されました!
【修正後】index.html.haml
エラーの際に確認したこと
- テーブルはformを使って送ったパラメータを受け取れているか
- コントローラーのファイルに記載したメソッドに誤りはないか(正しい値が遅れているか)
以上!
少しでも他の方のヒントになるよう記録を残しておきます!
Hamlはインデントのエラーも出やすいので、
丁寧なコード記述を心がけたいですね!
参考URL↓
https://rails-ambassador.herokuapp.com/tips/HerokuCloudinaryCarrierwave