如何使用Paperclip以编程方式设置file upload

我有一个耙子任务使用faker gem为随机数据创build一个应用程序。 然而,我们也有我们想要在这个rake任务中上传的图片(比如标识)。

我们已经设置了Paperclip,但是没有办法在rake任务中以编程方式上传它们。 有任何想法吗?

你是什​​么意思的编程? 你可以设置一个方法,将沿着一个文件path

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 

引导项目时,我们做了类似的事情。

我在耙子任务中做这样的事情。

 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)。 希望这是明确的。