【问题标题】:Changing path for integration tests on a Paperclip Attachment更改回形针附件上的集成测试路径
【发布时间】:2016-08-28 13:58:43
【问题描述】:

Paperclip 的文档中提到,您可以通过将以下代码放入 test.rb 环境文件中来更改测试的上传路径:

Paperclip::Attachment.default_options[:path] = "#{Rails.root}/spec/test_files/:class/:id_partition/:style.:extension"

我遇到的问题是附件在模型中设置了一个路径,不会被覆盖:

has_attached_file :photo, path: ':attachment/:id/:style.:extension'

当我运行测试时,文件会上传到 /photo/ 文件夹而不是 /spec/test_files/

我可能可以通过编写自定义回形针适配器来实现这一点,但必须有更简单的方法。

【问题讨论】:

    标签: ruby-on-rails ruby file-upload rspec paperclip


    【解决方案1】:

    我认为这已经过了你需要帮助的时候了 :) 但万一这有助于其他人 - 你可以使用 paperclip interpolations 例如

    # config/initializers/paperclip.rb
    Paperclip.interpolates :path_prefix do |_attachment, _style|
      if Rails.env.test?
        Rails.root.join("spec/test_files/")
      else
        ""
      end
    end
    

    然后更新您的自定义路径以使用前缀:

    has_attached_file :photo, path: ':path_prefix:attachment/:id/:style.:extension'
    

    【讨论】:

      【解决方案2】:

      我有一个类似的问题,我无法创建文件夹,而是放置这个:

      Paperclip::Attachment.default_options[:path] = "#{Rails.root}/spec/test_files/:class/:id_partition/:style.:extension"
      

      按照说明在环境/test.rb 中,我将其添加到 rails_helper.rb

      希望对你有帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多