如何知道图片是否已上传? - 回形针

时间:2011-04-08 10:31:44

标签: ruby-on-rails-3 paperclip

您知道是否有方法可以知道图片是否已上传?

我的意思是,我有一个Foo_Class,这个类可以有一个附加图像,但它的存在是不必要的。有没有办法知道该类的特定实例是否有图像?

谢谢!

5 个答案:

答案 0 :(得分:11)

如果foo.image?返回true,则上传文件。

答案 1 :(得分:8)

当您将Paperclip添加到模型时,您添加了回形针特定行,我的

cover_file_name
cover_content_type
cover_file_size
cover_updated_at

然后我检查它是否为零

 Foo_Class.cover_file_name.nil? 

答案 2 :(得分:6)

我认为正确的解决方案是使用file?方法。

foo.image.file?

http://rdoc.info/github/thoughtbot/paperclip/Paperclip/Attachment#file%3F-instance_method

使用存在?将向服务器发出请求以检查文件是否存在,这可能非常慢,特别是如果它位于不同的服务器上或S3上。

使用foo.image_file_name.nil?可能与文件相同?在幕后,但你不想依赖回形针的实施,这可能有一天会改变。

答案 3 :(得分:1)

如果这是在我的模型

has_attached_file :avatar, :styles => {:logo => "230x50>", :card_image => "180x50>"}

您可以检查是否为用户上传了图像,即@user

<%= @user.avatar.exists? %>

这将返回布尔值。

答案 4 :(得分:0)

假设您要检查Foo模型中第一行的附件(图像)是否存在:

image_present = Foo.first.image?

如果附件存在,则返回true。