ruby-on-rails - 如何从 ActiveStorage 附件中获取内容类型?
问题描述
我正在创建一个视图,其中包含通过 ActiveStorage 存储的视频。目前我正在显示这样的视频:
%video{ controls: true, preload:"metadata" }
%source{ src: rails_blob_path(@video.source), type: "TODO: Content Type" }
我想找到一种从附件中获取内容类型的方法。我发现我可以通过使用来实现它,@video.source.attachment.blob.content_type
但这似乎很笨重。还有另一种更简单的方法video.source.content_type
吗?不幸的是,使用video_tag
助手对我来说不是一个可行的解决方案。
解决方案
您可以直接从附件中访问内容类型,无需在 blob 中调用它,只需执行以下操作:@video.content_type
class ActiveStorage::Attachment < ActiveRecord::Base
self.table_name = "active_storage_attachments"
belongs_to :record, polymorphic: true, touch: true
belongs_to :blob, class_name: "ActiveStorage::Blob"
delegate_missing_to :blob #This line allow you to call all the blob methods from attachmen
推荐阅读
- javascript - 未捕获的类型错误:b.opt.map 不是函数(Jquery)
- javascript - 将 HTML 属性转换为 Javascript 对象
- php - 显示下拉子级别(autonav Concrete5)
- cookies - 如何对齐客户端和 IdentityServer cookie
- php - PHP MySQL 不使用子字符串执行更新
- opentok - 与两个发布者共享屏幕并发送音频
- javascript - 无法在 JSFiddle 中创建自定义 Vue 组件
- mxgraph - 单元格编辑器中未处理返回键
- linux - 如何等到服务准备好
- awk - 从流中隔离相似的数据