2014-03-06 16 views
0

我正在使用mongoid-paperclip gem上传文件。我能够显示我上传的图像。但如何显示PDF /视频。如何使用mongoid-paperclip显示上传的pdf/text_files/videos

请帮我解决问题。

这是图像模型。

Class Image 
    has_mongoid_attached_file :logo 
    validates_attachment :logo, :content_type => [ "application/pdf"] 
    validates_attachment_content_type :logo, :content_type => ["image/jpg", "image/jpeg", "image/png"] 

    field :logo 
end 

查看文件:

<% @images.each do |image| %> 
<%= image_tag(image.logo.url(:original)) %> 
<% end %> 

在此先感谢。

+0

我也面临同样的问题..请上传日志.. – sp1rs

回答

0

添加到您的模型

has_attached_file :logo, 
       :url => "/assets/products/:id/:style/:basename.:extension", 
       :path => ":rails_root/public/assets/products/:id/:style/:basename.:extension" 

然后在视图

<p> 
    <%= link_to 'My PDF', @variable.logo.url %> 
    </p> 
1

更换

validates_attachment :logo, :content_type => [ "application/pdf"] 
    validates_attachment_content_type :logo, :content_type => ["image/jpg", "image/jpeg", "image/png"] 

validates_attachment_content_type :logo, :content_type => ["image/jpg", "image/jpeg", "image/png", "application/pdf"] 

由于您正在验证相同的logo字段,因此无需单独验证。

我假设您已安装GhostScriptbrew install gs如果使用Mac)。这是使用Paperclip上传pdf的要求。如果没有,请先安装并重新启动Rails服务器。

在视图中,添加以下代码:

<% @images.each do |image| %> 
<% if image.logo.image_content_type == 'application/pdf' %> 
    <iframe src=<%= image.logo.url(:original) %> frameborder="0"></iframe> 
<% else %> 
    <%= image_tag(image.logo.url(:original)) %> 
<% end %> 
<% end %> 

iframe是用于将当前HTML中嵌入另一文档的内联框架机构。 上述代码是使用环境中测试:红宝石2.1.0,4.0.2的Rails的Mac OS小牛,回形针3.5.3

EDIT

结帐的paperclip-ffmpeg宝石,其用于增加视频处理,以回形针通过ffmpeg。确保您的机器上安装了FFMPEG

+0

我试过了,现在我能够显示PDF文件。谢谢你Kirti。我还有一个疑问,如何显示视频?你能帮我吗? – user3114171

+0

查看我的更新回答 –

+0

Kirti:我试过这个宝石,但它不工作。 – user3114171