如何询问@user.photo是否存在?创建自 (class PhotoUploader < CarrierWave::Uploader)
how to ask if @user.photo exists? created from (class PhotoUploader < CarrierWave::Uploader)
我的 User
模型使用载波创建以 @user.photo.thumb
访问的图像。这不是照片模型,photo
是 User
中的 string column
。但是,一些用户不会上传 photo
,所以我想创建一个 if/else
语句来告诉我他们是否上传了照片。
<% if @user.photo %>
returns true 即使用户尚未上传照片。
<% 如果@user.photo.nil? %> return false,但是在 Heroku 控制台中,对于 user
,它显示 column photo
为 nil
。
u = User.find(5)
=> User id: 5, name: "SpongeBob ",..., photo: nil>
class User < ActiveRecord::Base
mount_uploader :photo, PhotoUploader
end
class PhotoUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
version :thumb do
process resize_to_fill: [150,150]
end
if Rails.env.production?
storage :fog
else
storage :file
end
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
end
这是用作头像。如果他们没有上传自己的照片,我想要一个默认头像图片。
如果您查看自述文件,您可以像这样覆盖上传器中的 default_url。所以如果没有图片,它会显示默认。
class PhotoUploader < CarrierWave::Uploader::Base
def default_url(*args)
ActionController::Base.helpers.asset_path("fallback/" + [version_name, "default.png"].compact.join('_'))
end
end
如果您在模型中使用资产管道
如果你想查看文件是否存在你需要做
@user.photo.file.nil?
因为这将检查实际存在的文件。
我的 User
模型使用载波创建以 @user.photo.thumb
访问的图像。这不是照片模型,photo
是 User
中的 string column
。但是,一些用户不会上传 photo
,所以我想创建一个 if/else
语句来告诉我他们是否上传了照片。
<% if @user.photo %>
returns true 即使用户尚未上传照片。
<% 如果@user.photo.nil? %> return false,但是在 Heroku 控制台中,对于 user
,它显示 column photo
为 nil
。
u = User.find(5)
=> User id: 5, name: "SpongeBob ",..., photo: nil>
class User < ActiveRecord::Base
mount_uploader :photo, PhotoUploader
end
class PhotoUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
version :thumb do
process resize_to_fill: [150,150]
end
if Rails.env.production?
storage :fog
else
storage :file
end
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
end
这是用作头像。如果他们没有上传自己的照片,我想要一个默认头像图片。
如果您查看自述文件,您可以像这样覆盖上传器中的 default_url。所以如果没有图片,它会显示默认。
class PhotoUploader < CarrierWave::Uploader::Base
def default_url(*args)
ActionController::Base.helpers.asset_path("fallback/" + [version_name, "default.png"].compact.join('_'))
end
end
如果您在模型中使用资产管道
如果你想查看文件是否存在你需要做
@user.photo.file.nil?
因为这将检查实际存在的文件。