【发布时间】:2019-10-23 12:48:45
【问题描述】:
我正在添加照片上传器,如果未上传用户照片,我想添加默认图片?想知道我的“if”语句有什么问题。
我刚刚退出编码训练营,所以请原谅新手代码。为此提前道歉。如果我上传图片,图片会显示在我的导航栏中,但如果我不上传,我的导航栏中将不会显示任何内容。
这是我的 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
这是我的导航栏
<% 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
这是我的照片上传器
class PhotoUploader < CarrierWave::Uploader::Base
include Cloudinary::CarrierWave
end
我没有收到任何错误消息,但图片上传正常,头像进入导航栏,但如果我不上传图片,什么都不会出现,也不会抓取默认的“怪物”图片。
【问题讨论】:
标签: ruby-on-rails carrierwave cloudinary