Я добавляю загрузчик фотографий и хотел бы добавить изображение по умолчанию, если фотография пользователя не загружена? Хотелось бы узнать, что не так с моим утверждением «если».
Я только что вышел из буткемпа кодирования, так что извините код новичка. Заранее извиняюсь за это. Изображение отображается в моей навигационной панели, если я загружаю его, но если я не загружаю его, в моей навигационной панели ничего не будет отображаться.
Это мой файл user.rb
class User < ApplicationRecord
def set_photo
if self.photo.nil?
@photos = ['monsters/1', 'monsters/2', 'monsters/3', 'monsters/4', 'monsters/5', 'monsters/6', 'monsters/7', 'monsters/8']
self.photo = @photos.sample
self.save!
end
end
Это мой navbar
<% if user_signed_in? %>
<li class="nav-item dropdown">
<%= cl_image_tag current_user.photo, class: "avatar dropdown-toggle", id: "navbarDropdown", data: { toggle: "dropdown" }, 'aria-haspopup': true, 'aria-expanded': false %>
Это мой пользовательский контроллер
class UsersController < ApplicationController
def new
end
def show
end
def dashboard
@group = Group.new
@user_group = UserGroup.new
@user_groups = current_user.user_groups
@groups = current_user.groups
@user = current_user
end
def update
current_user.available_balance += params[:user][:deposit].to_f unless params[:user][:deposit].nil?
current_user.available_balance -= params[:user][:withdrawal].to_f unless params[:user][:withdrawal].nil?
current_user.save!
redirect_to dashboard_path
end
private
def user_params
params.require(:user).permit(:first_name, :last_name, :photo)
end
end
Это мой PhotoUploader
class PhotoUploader < CarrierWave::Uploader::Base
include Cloudinary::CarrierWave
end
Я не получаю никаких сообщений об ошибках, но изображение загружается нормально, и аватар переходит в навигационную панель, но если я не загружаю изображение, то ничего не появляется вообще, и оно не получит изображение по умолчанию «монстр».