Как установить аватар по умолчанию для пользователя в рельсах? - PullRequest
1 голос
/ 15 февраля 2020

Я бы хотел, чтобы у моих пользователей был аватар по умолчанию. Так что я пытаюсь это сделать помощником.

  def show_avatar(user)
    if File.exist?("/public/uploads/users/#{user.id}/avatar.jpg")
        image_tag ("accueil/profile_default.png"), class: 'rounded-circle', alt: "#{user.username}"
    else
      image_tag user.avatar_url, class: 'rounded-circle', alt: "#{user.username}"
    end
  end

Но я не понимаю, почему это не работает. Я тоже пробовал с Dir.empty? но тоже без результата. Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 15 февраля 2020

File.exist?("/public/uploads/users/#{user.id}/avatar.jpg") проверит путь от root вашей файловой системы, а не root вашего приложения Rails. Ваша логика c также обратная.

def show_avatar(user)
  if File.exist?(Rails.root.join("/public/uploads/users/#{user.id}/avatar.jpg"))
    image_tag user.avatar_url, class: 'rounded-circle', alt: user.username
  else
    image_tag "accueil/profile_default.png", class: 'rounded-circle', alt: user.username
   nd
end
...