gpt4 book ai didi

ruby-on-rails - Carrierwave 测试 - 清理或单独上传文件?

转载 作者:行者123 更新时间:2023-11-28 21:25:17 25 4
gpt4 key购买 nike

请给我一些反馈和/或帮助。

我正在做这个测试

scenario 'can create a new post' do

attach_file('Image', 'spec/files/hello-world.png')
fill_in 'Caption', with: 'Hello World! This is the first post!'
click_button 'Create Post'

expect(page).to have_css("img[src*='hello-world.png']")
expect(page).to have_content('Post was successfully created')
end

这个测试通过Carrierwave上传图片到uploads/post/image/1/hello-world.png,在开发环境等上应该是同一个路径,所以不知道这样行不行导致文件和帖子之间出现任何问题。

我的问题是,我是否需要将每个环境中的文件上传分开,还是 Rails 可以在内部进行管理?

最佳答案

存储文件的位置是defined in a Carrierwave Uploader by the method store_dir .如果需要将在不同环境中创建的文件分开,最简单的解决方案是将 Rails.env 添加到路径中:

def store_dir
@store_dir ||= File.join(
'public',
'uploads',
Rails.env,
model.class.table_name.to_s,
mounted_as.to_s,
model.id.to_s
)
end

这将创建如下路径:public/uploads/production/posts/image/1/image.png

关于ruby-on-rails - Carrierwave 测试 - 清理或单独上传文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42362159/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com