ruby-on-rails - 从文件夹中获取照片时,Rails、活动存储、attach_one 照片不起作用
问题描述
所以我试图将图片附加到我的数据库实例,但我找不到正确的路径语法来从我的images
文件夹中获取它。我究竟做错了什么?
当我使用以下语法在服务器上托管图像时,它可以正常工作:
bar1.photo.attach(io: URI.open("https://www.ogsoundfx.com/ogcoding/photo_test/image1.jpg"), filename: 'bar1')
但这不起作用:
bar1.photo.attach(io: File.open('../../app/assets/images/bar1.jpg'), filename: 'bar1')
我的路错了吗?老实说,我尝试了我能想到的所有可能的方法,但从未成功。谢谢!
解决方案
文件路径似乎有问题。
代码中的当前目录是应用程序根目录,..
路径中代表其父目录。
考虑您的 rails 应用程序位于 下parent_1/parent_2/parent_3/rails-mister-cocktail
,那么您使用的路径将在下搜索附件parent_1/rails-mister-cocktail/app/assets/images/bar1.jpg
请找到 irb 的以下输出以便更好地理解:
2.6.3 :002 > File.expand_path('../../app/assets/images/logo.png')
=> "/Users/mac1/Documents/RubyProjects/app/assets/images/logo.png"
2.6.3 :003 > File.expand_path('app/assets/images/logo.png')
=> "/Users/mac1/Documents/RubyProjects/LiveProject/testapp/app/assets/images/logo.png"
试试下面的:
bar1.photo.attach(io: File.open('app/assets/images/bar1.jpg'), filename: 'bar1')
您还可以读取相对于您的 rails 应用程序的根目录的文件。
File.open(File.join(Rails.root, %w(app assets images bar1.jpg)))
推荐阅读
- reactjs - 进行计算并输出结果
- tensorflow - make_tensor_proto raise ValueError("None values not supported.")
- r - 为什么 geom_errorbar 只在我的情节中间给我一些小线条
- python - Discord.py 创建具有给定颜色的角色
- javascript - React 函数不更新状态
- javascript - 无法设置未定义的属性“innerHTML”,联系表单提交
- reactjs - 将状态存储在父组件中而不导致父组件的重新渲染?
- android - 如何将我捕获的图像添加到我的 Hashmap
- php - 处理 PDF 生成并异步发送电子邮件
- javascript - 是否有任何解决方法可以从 readCsv() 方法返回 res 的值而不是 undefined?