0

红宝石-v 1.8.7,导轨-v 2.3.8

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

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

我的问题:我有大约 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'

任何帮助或建议表示赞赏。

4

1 回答 1

0

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

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

    <% Dir["public/files/*.pdf"].each do |file| %>
    <li><%= link_to 'Letter', file[/\/.*/] %></li>
    <% end %>
于 2012-05-22T23:35:37.077 回答