【问题标题】:Can't Figure Out How to Configure Default Profile Image for Paperclip无法弄清楚如何为回形针配置默认配置文件图像
【发布时间】:2023-03-10 10:48:01
【问题描述】:

我正在阅读过去有关此问题的 Stack 帖子,但我仍然无法使默认配置文件图像正常工作。

在我的 app/models 文件夹中,我有一个名为“profile.rb”的文件,如下所示:

class Profile < ActiveRecord::Base
  belongs_to :user

  # From Paperclip GitHub README
  has_attached_file :avatar, styles: { medium: "300x300>", thumb: "100x100>" }, default_url: "/images/:style/missing.jpg"
  validates_attachment_content_type :avatar, content_type: /\Aimage\/.*\Z/
end

据我了解,它基本上是说样式是某种媒介和拇指的占位符。所以“thumb”和“medium”应该是资产/图像内的文件夹。 default_url 声明默认图像将在“thumb”或“medium”文件夹中的 :styles 中找到。我在图像目录中创建了一个名为“thumb”的文件夹,然后将“missing.jpg”文件放入其中。在我的 show.html.erb 我有一行

<%= image_tag @user.profile.avatar.url %>

当用户上传图片时显示图片,但如果他们不上传图片则显示为“丢失”。

我还注意到在 public/profiles/avatars/000/000/004 目录中有 3 个文件夹,分别称为“medium”、“original”和“thumb”。我认为这是我需要放置“missing.jpg”的地方,但这也没有用,所以我有点不知道该怎么做。

根据this stack post,Paperclip 正在公共目录中寻找图像,所以我认为这是正确的地方,但我仍然不明白为什么它不起作用。

【问题讨论】:

    标签: ruby-on-rails-4 paperclip


    【解决方案1】:

    您丢失的图像必须位于公共文件夹中,或者您可以将其保存在 app/assets/images 文件夹中,因为它必须在全球范围内可用,并且如果将来您删除头像表,丢失的图像将消失。

    将丢失的图像保存在图像文件夹中之后。

    您可以将 default_url 指定为:

    default_url: "/assets/icon/missing.jpg"
    

    或者你可以在你的视图中添加一个条件,

    <% if @user.avatar? %>
        <%= image_tag @user.profile.avatar.url(:medium)  %>    
    <% else %>
        <%= image_tag "/assets/icon/missing.jpg" %>
    <% end %>
    

    【讨论】:

      猜你喜欢
      • 2014-10-16
      • 2023-03-05
      • 1970-01-01
      • 2021-07-10
      • 2021-12-26
      • 2011-02-18
      • 2021-02-01
      • 2013-02-07
      • 2014-07-22
      相关资源
      最近更新 更多