我如何使用带有载波上传的populate rails fixtures(yaml)? 文档似乎没有涵盖这一点,而carrierwave wiki也没有。
我试过了
我已经验证上面的ruby代码生成了一个有效的文件对象。
答案 0 :(得分:0)
我怀疑灯具会在任何地方出现,因为它们仅在Rails代码库中使用。另外,我使用它们,所以这一切都很重要。
我也发现这个article帮助了我,也帮助了你。
在test_helper.rb
class ActiveSupport::TestCase
# Add more helper methods to be used by all tests here...
CarrierWave.root = Rails.root.join('test/fixtures/files') #path is up to you
def after_teardown
super
CarrierWave.clean_cached_files!(0)
end
end
class CarrierWave::Mount::Mounter
def store!
# Not storing uploads in the tests
end
end
然后我加入了我的上传器:
def store_dir
if Rails.env.test?
"images"
else
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
end
我确信我可以摆脱store_dir
三元声明的需要,但现在它可行。如果这对你没有用,我还有另一种方法,但这更清洁了。