我有一个 rake 任务来使用 faker gem 为应用程序提供随机数据。但是,我们也有想要在这个 rake 任务中上传的图像(如徽标)。
我们已经设置了回形针,但没有办法在 rake 任务中以编程方式上传它们。有任何想法吗?
我有一个 rake 任务来使用 faker gem 为应用程序提供随机数据。但是,我们也有想要在这个 rake 任务中上传的图像(如徽标)。
我们已经设置了回形针,但没有办法在 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
在种子.db ->
my_instance = Model_name.new
my_instance.my_attachment = File.open('path/to/file/relative/to/app')
my_instance.save!
也许以前的答案意味着使用模型中定义的附件名称(而不是编写方法 Model_name.attachment)。希望这很清楚。