Проверьте, существует ли файл в публичном пути Rails - PullRequest
0 голосов
/ 22 сентября 2019

Я пытаюсь проверить, существует ли файл в общей папке моего приложения на Rails.У меня есть это:

if File.file?("#{Rails.public_path}/cars/music/#{name.to_s.parameterize}.mp3")

Проблема в том, что Rails.public_path возвращается как /app/public?Мой каталог public не находится внутри каталога app, поэтому он не может найти файл.

Что здесь происходит?

1 Ответ

1 голос
/ 22 сентября 2019

Команда Rails.public_path возвращает полный путь к общей папке вашего проекта.

Если ваш проект находится в какой-либо платформе, например, heroku или docker, этот путь начинается с каталога /app.Итак, когда вы говорите, что Rails.public_path возвращает /app/public, то "/ app" не является папкой / app вашего проекта.

Поэтому, когда вы делаете что-то вроде Rails.root.join('public','cars','music',"#{name.to_s.parameterize}.mp3"), оно должно возвращать путь /app/public/cars/music/song.mp3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...