首页 > 解决方案 > 从关联对象获取回形针附件 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?

标签: ruby-on-railspostgresqlruby-on-rails-5paperclipattachment

解决方案


回形针为每个附件使用多个字段,在您的情况下,这些字段将是image_file_nameimage_content_typeimage_file_size,请参阅您的架构。

这些字段也应该在模型本身上。您可以尝试添加has_attached_file :venue_image将读取Event模型上选定的场地属性。但是您必须覆盖urlpath参数,因为路径中出现的类名会有所不同。

其他直接的方法是根据文件名手动生成 url,比如回形针。

但总的来说 - 回形针缺乏灵活性(并且已被弃用),因此您应该查看其他附件库,如神社


推荐阅读