Rails链接目录中的文件

时间:2012-05-21 23:52:16

标签: ruby-on-rails ruby file upload

RUBY -v 1.8.7,Rails -v 2.3.8

我正在尝试将文件从公共/数据链接到视图,这让我很头疼。我知道我应该能够独自完成这项任务,但是我丢失了旧的铁轨书并从亚马逊订购了一本新书,它应该在一周内到达....:*(

我确实阅读了上传文件教程。

我的问题: 我有大约3000个文件夹;每个文件夹大约有3~5个文件。

我的问题:

  • 我是否应该创建数据库迁移以跟踪文件的地址?这样可以轻松访问? (即order.data_file.address;我猜是“是”)

  • 上传文件后,如何链接文件,以便为视图正确链接文件。

所以无论如何我得到了这个:

<% @files = Dir.glob("public/data/*") %>
<% for m in @files %>
<% new_file = m.to_s %>
<li><%= link_to m.to_s, new_file %> </li>
<% end %>

该文件的链接最终为:localhost:3000 / public / data / temp.pdf

但这不起作用并返回:

 No route matches "/public/data/temp.pdf" with {:method=>:get}

我猜我需要在routes.rb中使用它才能使它工作....

 map.datafile '#{RAILRS_ROOT}/public/data/:id', :controller => 'upload'

感谢任何帮助或建议。

1 个答案:

答案 0 :(得分:0)

没有必要的特殊map.resources路线。没有特殊的控制器方法send_to。

只需通过省略公共部分来纠正链接,它就可以了。我在另一个问题中使用了以下代码。

    <% Dir["public/files/*.pdf"].each do |file| %>
    <li><%= link_to 'Letter', file[/\/.*/] %></li>
    <% end %>