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