【发布时间】:2013-09-23 03:54:35
【问题描述】:
这与我关于加入here 的问题有些相关。默认情况下,当我在搜索结果视图中使用 listing.image.name 时,它会执行完整查询以查找结果数组中每个列表的图像。它甚至会做一个额外的查询来检查列表是否有任何图像。所以为了避免这种情况,我将以下内容添加到我的 Thinking Sphinx 查询中:
@ts_params[:sql][:joins] = "INNER JOIN listing_images ON listing_images.listing_id = listings.id AND listing_images.position = 0"
@ts_params[:sql][:select] = "listings.*, listing_images.image as image_name, listing_images.id as image_id"
这可行,但是我不确定如何使用载波生成完整的 image_url。以前,它对每个结果进行额外查询时,我使用的是listing.image.image_url(:sizename)。所以,我可以从上面的加入中找到图像名称和 ID,但是如何通过 carrierwave 将其转换为完整的图像 url?是否有不需要“图像”对象的内置方法来检索 url?
我尝试了 listing.image_id.image_url(:sizename) 但它给出了一个未定义的方法错误,正如预期的那样。
【问题讨论】:
-
我已经设法手动输入网址,s3urlhere/uploads/listing_image/image/#{listing.image_id}/medium_#{listing.image_name}", :alt => 列表。标题 %> - 肯定有办法使用carrierwave 构建这个网址?
标签: ruby-on-rails-4 carrierwave