Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 如何使用mongoid回形针显示上传的pdf/text\u文件/视频_Mongodb_Ruby On Rails 4_Mongoid - Fatal编程技术网

Mongodb 如何使用mongoid回形针显示上传的pdf/text\u文件/视频

Mongodb 如何使用mongoid回形针显示上传的pdf/text\u文件/视频,mongodb,ruby-on-rails-4,mongoid,Mongodb,Ruby On Rails 4,Mongoid,我使用mongoid回形针gem上传文件。我能够显示我上传的图像。但是如何显示PDF/视频 请帮我找到解决办法 这是图像模型 Class Image has_mongoid_attached_file :logo validates_attachment :logo, :content_type => [ "application/pdf"] validates_attachment_content_type :logo, :content_type => ["image

我使用mongoid回形针gem上传文件。我能够显示我上传的图像。但是如何显示PDF/视频

请帮我找到解决办法

这是图像模型

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 %>

提前感谢。

将此添加到您的模型中

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>

更换

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

无需单独验证,因为您正在验证相同的
徽标
字段

我假设您已经安装了
GhostScript
brew安装gs
,如果使用Mac)。这是使用回形针上传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中嵌入另一个文档。 以上代码使用以下环境进行测试:Ruby 2.1.0、Rails 4.0.2、MacOS Mavericks、Paperclip 3.5.3

编辑


检查用于通过ffmpeg向曲别针添加视频处理的gem。确保您的机器上安装了
FFMPEG

我也面临同样的问题。。请上传日志。我试过了,现在我可以显示PDF了。谢谢你,科蒂。我还有一个疑问,如何显示视频?。你能在这方面帮助我吗?你是否完成了gem“需求”部分所述的配置。有关详细信息,请参阅:请帮助我如何查看上载的文本文件/PDF和视频。
<% @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 %>