2012-07-11 31 views
0

好了,所以我有這個模型......Rails的回形針自定義文件路徑

class Asset < ActiveRecord::Base 
    attr_accessible :asset_file_name, :lesson_id, :attachment 

    has_attached_file :attachment, 
    :url => "/attachments/:id/:basename.:extension", 
    :path => ":rails_root/public/attachments/:id/:basename.:extension" 

    validates_presence_of :asset_file_name 
    validates_attachment_presence :attachment 
end 

(也有一款型號爲Lesson

我想附件保存到/attachments/:lesson_id/:basename.:extension。 這不是資產的:id,而是:lesson_id。當我這樣做時,該目錄實際上只是名爲:lesson_id。任何人都知道如何獲得實際的lesson_id?我也試過@asset.lesson_id

回答

1

您必須在回形針中添加自定義插補器。 這是在初始化做得最好的地方或去耦從模型

Paperclip.interpolates('lesson_id') do |attachment, style| 
    attachment.instance.lesson_id 
end 

之後,你的:lesson_id將實際object.lesson_id