ruby-on-rails - 从关联对象获取回形针附件 url
问题描述
我有一个 Rails 应用程序,它有两个表,一个“场地”表和一个“事件”表。
地点 has_many :events, Event has_one :venue.
为了减少客户端的负载,我只选择了需要使用我的 JSON API 发送的列。
@events = Event.joins(:venues).select("events.name", "events.description","events.image" ,"events.image_file_name" "venues.name as venue_name","venue.area as venue_area", venues.image as venue_image","venues.image_file_name as venues_image_file_name")
当我从事件表中选择 image_file_name 时,我看到了事件图像的正确 url。但在同一个过程中,在关联场地表中返回一个“空”值。
如何使用 SQL 查询从关联表中获取图像 url?
解决方案
回形针为每个附件使用多个字段,在您的情况下,这些字段将是image_file_name
、image_content_type
等image_file_size
,请参阅您的架构。
这些字段也应该在模型本身上。您可以尝试添加has_attached_file :venue_image
将读取Event
模型上选定的场地属性。但是您必须覆盖url
和path
参数,因为路径中出现的类名会有所不同。
其他直接的方法是根据文件名手动生成 url,比如回形针。
但总的来说 - 回形针缺乏灵活性(并且已被弃用),因此您应该查看其他附件库,如神社
推荐阅读
- netlogo - Netlogo:关于为反应式无线传感器网络创建表的任何指针?
- flutter - 如何将文本添加到 TextField
- java - 为什么 Activity 打不开
- python - 从 Keras 检查点加载
- php - 如何检查在提交输入按钮时显示的哈希引脚并在未找到时显示未找到?
- java - 如何制作一个二维数组,其中下一行是Java中前一行的平方?
- python - 根据值将列表拆分为子列表
- c++ - C++ 用函数删除指针
- javascript - 使用事件监听器我们应该使用 useCapture 作为 false 来支持旧浏览器,否则它将被用作每个浏览器的默认值
- android - 如何在 MVVM 架构中使用协程进行改造