0

ルビー -v 1.8.7、レール -v 2.3.8

public/data からビューにファイルをリンクしようとしていますが、頭痛の種です。私は自分でこれを行うことができるはずだと知っていますが、古いレールの本をなくしてしまい、Amazon に新しいものを注文しました.1 週間以内に届くはずです.... :*(

ファイルのアップロードのチュートリアルを読みました。

私の問題: 約 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 に答える