Rails 3.1 PaperClip-アップロードされたファイルのフォルダー構造を整理するより良い方法は?

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

質問

Rails 3.1アプリのファイルを保存するためにPaperClipを使用しています。すべてがパブリックフォルダーに保存されているという事実に少し混乱していますが、すべてが正常に機能します。

私はこの種の構造を持っています:

class Photo < ActiveRecord::Base  
 belongs_to :photoable, :polymorphic => true
 has_attached_file :photo,  :styles => { :large => "800x600", :medium => "400x300>", :thumb => "100x100>"  }    
end  

class Project < ActiveRecord::Base
 attr_accessible :projectname, :photos_attributes
 has_many :photos, :as => :photoable 
 accepts_nested_attributes_for :photos, :allow_destroy => true  
end

明らかに、has_many:photos:as =>:写真もあります。

次に、写真をアップロードすると、public/system/photos/1(または/2など)に保存されます。すべてが正常に機能しますが、それを整理するより良い方法があるのだろうか(フォルダー構造がもう少し読みやすい(ユーザー名、プロジェクト名などがあります)?

また、私が間違っている場合は私を修正しますが、ファイルはパブリックフォルダーではなく資産に移動するはずだと思いましたか?

ありがとう

役に立ちましたか?

解決

ユーザーがアップロードするコンテンツは、パブリック/システムフォルダーに移動する必要がありますが、スタイルシート、画像、JavaScriptなどのデザイン要素は、アプリ/アセットに対応するフォルダーに配置する必要があります。

ファイルパスに追加する場合は、デフォルトでサポートされていない追加情報(ユーザー名など)を確認する必要があります。 https://github.com/thoughtbot/paperclip/wiki/interpolations )

他のヒント

これは、has_atached_fileでのパスオプションのためです。 readmeの「ストレージ」セクションをご覧ください。https://github.com/thoughtbot/paperclip

添付ファイルとして割り当てられているファイルは、デフォルトでは、has_attached_fileのパスオプションで指定されたディレクトリに配置されます。デフォルトでは、この場所は次のとおりです。Rails_root/public/system/:attachment/:id/:style/:filename。この場所は、標準のCapistranoの展開では、パブリック/システムディレクトリがアプリの共有ディレクトリにシンプルされているため、展開間で存続するため、選択されました。たとえば、それを使用して、パス、あなたはでファイルを持っているかもしれません

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