対象者
- railsで画像ができない人.
目次
やりたいこと.
エラーの経緯.
エラーの意味
1やりたいこと.
Errno::ENOENT: No such file or directory @ rb_sysopen - ./public/images/cat.jpg
というエラーが出る。 このエラーをデバックしたいです。
1. エラーの経緯.
seed.rbで画像を登録しビューに表示しようとしました。 しかし画面に画像が表示されずrails db:resetでデータベースをリセットし1からやり直そうとしました。 その後rails db:seedでデータを作り直そうとしたところこちらのエラーが出力されました。
1. エラーの意味
⇨seed.rbの画像のパスの指定が間違っている。 私のseed.rbを覗くと↓ 'cat.jpg'ここの指定の仕方が間違っているので画像ファイルが読み込めずエラーになっていたようです.
[ ['ミヌエット', 'クリーム', '静岡県 ','男の子 ', 480445 , image: File.open('cat.jpg')], ['マンチカン', 'ホワイト', '三重県 ','男の子 ', 938050 , image: File.open('cat2.jpg')], ['マンチカン', 'ホワイト', '東京都 ','女の子 ', 505745 , image: File.open('cat3.jpg')], ['ラグドール', 'ホワイト', '静岡県 ','女の子 ', 418000 , image: File.open('cat4.jpg')], ['ソマリ', 'グレー', '神奈川 ','女の子 ', 416870 , image: File.open('cat5.jpg')], ]
画像ファイルのパスを記載するときデフォルトではカレントディレクトリからのパスを指定する必要がある。 カレントディレクトリ=↓画像の語尾のcat_findがカレントディレクトリ
[ ['ミヌエット', 'クリーム', '静岡県 ','男の子 ', 480445 , image: File.open('./app/public/images/cat.jpg')], ['マンチカン', 'ホワイト', '三重県 ','男の子 ', 938050 , image: File.open('./app/public/images/cat2.jpg')], ['マンチカン', 'ホワイト', '東京都 ','女の子 ', 505745 , image: File.open('./app/public/images/cat3.jpg')], ['ラグドール', 'ホワイト', '静岡県 ','女の子 ', 418000 , image: File.open('./app/public/images/cat4.jpg')], ['ソマリ', 'グレー', '神奈川 ','女の子 ', 416870 , image: File.open('./app/public/images/cat5.jpg')], ]
なのでappからパスを指定すると直りました。