Attachment_fu を使用して RAILS ROOT の外部のディレクトリにファイルをアップロードする

StackOverflow https://stackoverflow.com/questions/1387577

  •  21-09-2019
  •  | 
  •  

質問

attachment_fuを使用してファイルを外部のディレクトリにアップロードしようとしています。 RAILS_ROOT. 。ファイルを保存したいのですが、 ~/APP_NAME/uploads/ これにより、公開される前に承認/拒否できるようになります。次の構成を試しました has_attachment:

has_attachment  :storage => :file_system,
                :path_prefix => "~/APP_NAME/uploads/",
                :max_size => 5.megabytes

残念ながら、この構成では単純に ~/APP_NAME/uploads/ のディレクトリ構造 RAILS_ROOT. 。ファイルを外部に保存する任意の方法 RAILS_ROOT?

役に立ちましたか?

解決 2

私は別の方法スーツ私はより良い相対パス名を使用するよりことがわかりました。私は私の添付ファイルのクラスにfull_filenameというメソッドを追加しました:

class attachment < ActiveRecord::Base
    def full_filename
       return  "/Users/ron/attachments/#{id}.#{file_format}"
    end
end

他のヒント

これはおそらく、アタッチメント・フーの問題ではなく、Rubyのハンドルは、ファイルがUNIXで保存されているかI / Oファイルだけでなく、どのようにます。

だから、例えばもし言う、でアプリの生活、〜/ユーザ/ロン/ APP_NAME

あなたは上記のコードを変更する場合:

:path_prefix => "~/APP_NAME/uploads/"

宛先:

:path_prefix => "../#{RAILS_ROOT}/uploads"

ファイルは〜/ユーザ/ロン/アップロードで「アップロード」というフォルダに格納されます。一つのディレクトリ現在のRailsのルート上の「../」を意味します。あなたは2つのディレクトリをアップに行きたい場合は、「../../」こととなりそうでます。

しかし、それだけのアドレス階層ナビゲーション。あなたがあなたのファイルシステム内のハードコードされたディレクトリ内のストアファイルに添付-Fuのを伝えたかった場合は、次のような「〜/ユーザ/ロン/ APP_NAME /アップロード」、それにファイルパスを与えることができるが、ファイルパスに心のハードコードでこれを保ちます方法は脆く、将来の痛みのポイントかもしれないあなたのファイルのストレージ要件の変更が必要があります。

希望に役立ちます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top