Paperclip和Zip - 我的.zip文件神奇地转换为.png

时间:2016-10-28 04:06:52

标签: ruby-on-rails ruby paperclip

我遇到了Paperclip的问题。很容易,我正在尝试使用Paperclip上传.zip文件夹 - 我已经阅读过,似乎可以完成。

然而,我的.zip上传转换为默认的'missing.png'文件 - 我并不知道为什么。这个文件是,呃...这个过程正在进行中,我没有收到任何错误,但显然有些事情并没有成功。

我按照Can't upload zip files using ruby on rails and paperclip gem的说明进行操作,但它仍然没有......改变任何事情。

从我通过相关模型的rails控制台运行中可以看出,该文件根本没有上传。问题是,我不知道在哪里,如何或为什么。

这是我的书模型

book.rb

    has_attached_file :content
    validates_attachment_content_type :content, :content_type => ["application/zip, application/x-zip"]

    before_post_process :skip_for_zip

def skip_for_zip
   ! %w(application/zip application/x-zip).include?(attachment_content_type)
end

end

快速的rails console peek

2.1.6 :001 > Book.all
  Book Load (0.7ms)  SELECT "books".* FROM "books"
 => #<ActiveRecord::Relation [#<Book id: 3, title: "Test", summary: "La la la", rating: nil, author_id: nil, word_count: nil, created_at: "2016-10-28 03:53:22", updated_at: "2016-10-28 03:53:22", cover_file_name: nil, cover_content_type: nil, cover_file_size: nil, cover_updated_at: nil, content_file_name: nil, content_content_type: nil, content_file_size: nil, content_updated_at: nil>, #<Book id: 4, title: "ugh", summary: "", rating: nil, author_id: nil, word_count: nil, created_at: "2016-10-28 03:59:33", updated_at: "2016-10-28 03:59:33", cover_file_name: nil, cover_content_type: nil, cover_file_size: nil, cover_updated_at: nil, content_file_name: nil, content_content_type: nil, content_file_size: nil, content_updated_at: nil>]> 
2.1.6 :002 > 

忽略“封面”部分,我隐藏了一个单独的Paperclip附件来诊断“内容”问题。

但请注意,我没有收到任何错误。完全没有。任何。所以。对于像我这样的新手,StackOverflow Rails Gawds的任何帮助都会非常受欢迎。

1 个答案:

答案 0 :(得分:0)

解决!

正如@ henners66建议的那样,我完全错过了:内容作为我的图书管理员的允许参数 - 事实证明,我宣布了有效的内容类型&#39;不正确。应该是:

book.rb

    has_attached_file :content
    validates_attachment_content_type :content, :content_type => ["application/zip", "application/x-zip"]

    before_post_process :skip_for_zip

def skip_for_zip
   ! %w(application/zip application/x-zip).include?(attachment_content_type)
end

end

谢谢大家!