5

ログインしているユーザーのみが、carrierwave からアップロードされたファイルを表示/ダウンロードできるようにしたいと考えています。

これはどのように行われますか?

ストア ディレクトリを public から RAILS_ROOT に移動し、表示とダウンロードのルートを作成しました。

問題は、画像の場合<%= image_tag(photo.image_url) %>、フル パス /Users/myname/projects/appname/files/image/id/image.png を取得するため、レンダリングされないことです。

また、ビューが私の絶対パスをレンダリングせず、サイトからの相対パスだけをレンダリングするといいでしょう。

4

1 に答える 1

3

これは実際には非常に簡単なことです。sendfile と x-sendfile について説明しているブログがあります。これはあなたを正しい方向に送るはずです。

http://www.therailsway.com/2009/2/22/file-downloads-done-right

ここにそのためのレールドキュメントがあります。

http://api.rubyonrails.org/classes/ActionController/Streaming.html#method-i-send_file

これはすべてコントローラー レベルで処理されるため、ユーザーが承認されているかどうかを確認する before_filter があることを確認してから、コントローラー アクションで send_file メソッドを使用します。

于 2011-05-22T19:19:35.640 に答える