首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Carrierwave和rails设备

Carrierwave和rails设备
EN

Stack Overflow用户
提问于 2014-07-27 07:56:26
回答 1查看 651关注 0票数 1

我如何在carrierwave上传中使用填充rails fixtures(yaml)?文档似乎没有涉及到这一点,carrierwave wiki也没有。

我试过了

并且我已经验证了上面的ruby代码生成了一个有效的file对象。

EN

回答 1

Stack Overflow用户

发布于 2015-08-21 20:18:52

我怀疑fixture会有什么用武之地,因为它们只在Rails代码库中使用。再加上我使用它们,所以这才是最重要的。

我也发现了这个article,它帮助了我,也帮助了你。

简而言之就是test_helper.rb

代码语言:javascript
复制
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

然后我在我的上传程序中放入:

代码语言:javascript
复制
def store_dir
  if Rails.env.test?
    "images"
  else
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end
end

我确信我可以摆脱对store_dir三元like语句的需要,但现在它是有效的。如果这对你不起作用,我有另外一种方法,但这更干净。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24976594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档