2011-04-11 58 views
2

我有兩個模型
用戶和用戶代理
用戶都有一個用戶代理&的UserAgent屬於用戶
和用戶代理使用回形針上傳文件到服務器
使用這種

has_attached_file :agreement,
:path => "#{Rails.root}/public/upload/new_agreements/:id/:basename.:extension"
回形鍼關聯的問題

該工作罰款。它正在創建上傳文件所需的文件夾。

但我要創建這樣
:path => "#{Rails.root}/public/upload/new_agreements/User:id/:basename.:extension"
文件夾這意味着我需要根據User.id上傳文件,但不UserAgent.Id
有什麼辦法?如果你不明白這個問題,你可以提問。

回答

2

試試看。我沒有測試它,但你可以修改它:

class UserAgent < ActiveRecord::Base 
    has_attached_file :file, 
        :path => lambda{ |a| "#{Rails.root}/public/upload/new_agreements/#{a.instance.user.id}/:id/:basename.:extension" } 
end 
+0

感謝您的幫助。但是它給出了同樣的result.And我是否需要把這個線在我的User.rb文件?現在它在useragent.rb(model)文件中。因爲我想將文件詳細信息保存在user_agent數據庫表中。 – shajin 2011-04-11 10:41:09

+0

我已經更新了我的答案,您應該將此添加到您的'UserAgent'模型 – fl00r 2011-04-11 10:50:06

+0

非常感謝fl00r先生,這對我很有用。這就是爲什麼我愛開源和stackoverflow :) – shajin 2011-04-11 11:28:00