2012-05-21 73 views
0

RUBY -v 1.8.7,Rails -v 2.3.8Rails鏈接目錄中的文件

我試圖將文件從公共/數據鏈接到視圖,它給我頭痛。我知道我應該可以自己做到這一點,但我失去了我的舊鐵軌書,並從亞馬遜訂購了一個新的,它應該在一週內抵達....:*(

我確實閱讀過。上傳文件教程

我的問題: 我有大約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 %> 

到文件的鏈接作爲結束3000 /大衆/數據/ temp.pdf

但這並不工作和回報:

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

我猜我需要的東西在routes.rb中,使其工作....

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

任何幫助或建議表示讚賞。

+0

路徑=參數[:交] \t由send_file(路徑,:類型=> '應用/ PDF',:配置=> '內聯') – Wackyshun

回答

0

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

只是通過省略公共部分得到更正的鏈接,它的工作。我從另一個問題使用下面的代碼。

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

返回與給定記錄分隔一個新的字符串從除去str的結尾(如果存在)。如果$ /尚未從默認的Ruby記錄分隔符中更改,則chomp還會刪除回車符(即它將刪除\ n,\ r和\ r \ n)。 – Wackyshun