我有一個rake任務,使用faker gem爲隨機數據創建應用程序。不過,我們也有圖片(如徽標),我們想要在這個耙子任務中上傳。如何使用Paperclip以編程方式設置文件上傳
我們已經設置了回形針,但沒有辦法以編程方式將它們上傳到rake任務中。有任何想法嗎?
我有一個rake任務,使用faker gem爲隨機數據創建應用程序。不過,我們也有圖片(如徽標),我們想要在這個耙子任務中上傳。如何使用Paperclip以編程方式設置文件上傳
我們已經設置了回形針,但沒有辦法以編程方式將它們上傳到rake任務中。有任何想法嗎?
你是什麼意思的編程?您可以設置,將採取一個文件路徑沿着
my_model_instance = MyModel.new
file = File.open(file_path)
my_model_instance.attachment = file
file.close
my_model_instance.save!
#attachment
來自我們在我們的模型回形針申報行的方法。在這種情況下,我們的模型看起來像
class MyModel < ActiveRecord::Base
has_attached_file :attachment
end
當引導項目時,我們已經做了類似的事情。
我在rake任務中這樣做。
photo_path = './test/fixtures/files/*.jpg'
Dir.glob(photo_path).entries.each do |e|
model = Model.find(<query here>)
model.attachment = File.open(e)
model.save
end
我希望這有助於!
我實際上並不需要爲此寫一個方法。簡單得多。
在型號 - >
Class Model_Name < ActiveRecord::Base
has_attached_file :my_attachment,
:params_for_attachment
在seed.db - >
my_instance = Model_name.new
my_instance.my_attachment = File.open('path/to/file/relative/to/app')
my_instance.save!
或許意味着使用的模型中定義的(而不是寫一個附件的名稱以前的答案方法Model_name.attachment)。 希望這很清楚。
'attachment'就是你在'has_attached_file:attachment'中設置的任何內容,' – 2012-12-04 05:03:23
@如果我將其添加到答案中,您認爲它會更清楚嗎?如果是這樣,我會添加它。 – theIV 2012-12-04 16:06:05
是的。不清楚'attachment'是保留字還是用戶定義的。 – 2012-12-04 16:08:39