Paperclip错误地假定帖子的missing.png文件

时间:2014-06-13 16:39:52

标签: ruby-on-rails paperclip

我正在使用Paperclip 4.1.1来处理上传到我网站的图片。 我有一个典型的Post模型has_attached_file :picture

图片上传正常,验证正确。 问题是Paperclip假设没有图片的所有帖子都缺少它们。 因此它会为它们显示missing.png文件。

这是我的Post.rb

class Post < ActiveRecord::Base

    validates :title, presence: true, length: {minimum: 5}
    has_and_belongs_to_many :categories
    accepts_nested_attributes_for :categories

    has_attached_file :picture,
                  :styles => {:medium => "350x", :thumb=> "100x" },
                  :default_url => "/images/:style/missing.png"

    validates_attachment_content_type :picture,
                                  :content_type => /\Aimage/,
                                  :size => {:in => 0..2048.kilobytes}

end

有没有办法建立支票,以便不为那些没有相关图片的帖子显示图片?

旁注:我写了一个帮助方法,只有在文件名不是missing.png时才显示图片我知道这不是解决问题的正确方法。

感谢您的建议。

感谢。

1 个答案:

答案 0 :(得分:3)

Paperclip的通常行为是,如果在没有图片的情况下上传帖子,则default_url中指定的图像将显示在其位置。

如果你想避免这种行为,那么解决方法就是不显示图片如果它不存在

例如:您可以在视图中执行以下操作:

<%= image_tag @post.picture.url(:thumb) if @post.picture.present? %>

这样,如果@post指定的帖子记录仅分配了picture字段,那么picture字段将显示在视图中,否则不会显示。