2012-01-10 102 views
0

我正在使用Paperclip保存Rails 3.1應用程序的文件。一切工作正常,雖然我有點的事實,一切都保存到公用文件夾迷茫..Rails 3.1回形針 - 更好的方式來組織上傳文件的文件夾結構?

我有這樣的結構:

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 =>:photoable

然後,如果我上傳了一張照片,它會保存到Public/system/photos/1(或/ 2等)。一切工作正常,但我不知道是否有更好的方式來組織它(這樣的文件夾結構是更容易閱讀(有用戶名,項目名稱等)?

也糾正我,如果我錯了,但我認爲這些文件應該去的資產,而不是公共文件夾

感謝

回答

0

內容的文件,同時設計元素,如樣式表,圖片和JavaScript的應該放在應用程序/資產相應文件夾。

如果你想添加到文件路徑不是默認(如用戶名)支持一些額外的信息,那麼你應該看看回形針插補(https://github.com/thoughtbot/paperclip/wiki/Interpolations

+0

謝謝,會研究。是總體而言,改變路徑是一種很好的做法? – Stpn 2012-01-11 18:59:02

+0

「公共/系統」(建議用於回形針上傳)之後的路徑剩餘部分可以是任何您想要的,並且最符合您的需求。 – 2012-01-11 19:03:35

1

這是什麼:?路徑的選擇是在has_atached_file退房自述的「存儲」部分: https://github.com/thoughtbot/paperclip

文件tha t被分配爲附件時,默認情況下,將由:path選項指定的目錄置於has_attached_file中 。默認情況下,該位置爲 :rails_root/public/system /:attachment /:id /:style /:filename。選擇此 位置是因爲在標準Capistrano部署中, 公共/系統目錄符號鏈接到應用程序的共享目錄 ,這意味着它將在部署之間存活。例如,使用 :路徑,您可能必須在由用戶上傳的應該進入公共/系統文件夾