我正试图在网站上获得一个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文件?
<%= link_to image_tag('/assets/pdf_image.png'), the_file.port_file.url, target: '_blank' %>
在末尾添加一个.url
。