使用rails和carrier wave链接到PDF文件

时间:2014-07-17 15:54:08

标签: ruby-on-rails ruby ruby-on-rails-4 hyperlink carrierwave

我正在尝试在网站上找到pdf文件的链接。当有人点击链接时,它应该在新的浏览器窗口中打开pdf文件。

我在视图中有以下代码:

<% @filtered_portfolio_files.each do |the_file| %>
    <li>
        <% if the_file.is_picture? %>
            <%= image_tag(the_file.port_file.picture) %> 
        <% else %> 
            <%= link_to image_tag('/assets/pdf_image.png'), the_file, target: '_blank' %> 
        <% end %>
    </li>
<% end %>

如果文件是图像,则应显示图像,如果文件是PDF,则应显示链接到pdf文件的Adobe PDF徽标的虚拟图片。

现在这个循环经过两个文件。第一个是图像,第二个是PDF。它正确显示第一张图像,第二张图像正确显示PDF徽标的图像,但点击它时会显示一个页面

No route matches [GET] "/portfolio_files/4"

我也在视图中尝试过:

<% @filtered_portfolio_files.each do |the_file| %>
    <li>
        <% if the_file.is_picture? %>
            <%= image_tag(the_file.port_file.picture) %> 
        <% else %> 
            <%= link_to image_tag('/assets/pdf_image.png'), the_file.port_file, target: '_blank' %> 
        <% end %>
    </li>
<% end %>

但是停止加载页面并返回错误:

undefined method `model_name' for PortfoliofileUploader:Class

如何正确链接PDF链接以正确链接到pdf文件?

1 个答案:

答案 0 :(得分:0)

<%= link_to image_tag('/assets/pdf_image.png'), the_file.port_file.url, target: '_blank' %> 

在最后添加.url