2011-10-06 98 views
2

我使用紙夾將多個文件附加到一個條目對象通文件回形針上後端[軌]

Class Asset < ActiveRecord::Base 

    belongs_to :entry 

    has_attached_file :asset, ... 

奇妙的作品時用戶經由嵌套形式上傳文件。但是,在某些情況下,文件不是通過輸入表單上載,而是通過閃存錄音機上傳的。錄製音頻並將其異步上傳到我的/ tmp文件夾。所以最後我的服務器上有一些文件沒有通過回形針上傳。

在這些情況下,我想將該文件傳遞給回形針進行處理,就好像它是由用戶通過輸入表單上傳的一樣。即我需要在控制器內以編程方式使用回形針。

你將如何去完成這個?非常感謝!

回答

7

通常上傳的文件傳遞給你的控制器作爲File對象在params哈希,然後由構造遞,由attributes=方式,由回形針的has_attached_file --in模型的情況下Asset#asset=創建的setter方法(可能想澄清這些名字)。

不,這不是您的問題的答案,但它會引導我們回答問題。知道您可能會意識到,您可以隨時以File作爲參數調用該設置器。例如:

class SomeController < ActionController::Base 
    def some_action 
    @some_asset = Asset.find 123 # (for example) 

    file_path = '/tmp/path/to/your/file' 
    file  = File.open(file_path, 'r') 

    @some_asset.asset = file 
    @some_asset.save 
    end 
end 

希望有幫助!

+0

男人,你釘了它。岩石上。 – istan

+0

我如何發送File.open()的絕對路徑,使用angularjs,因爲我無法獲得路徑,因爲chrome爲了安全原因通過瀏覽器給我fakepath,itz塊....任何幫助 – Orange