在查询中使用“选择”时,纸夹图像未加载

时间:2014-03-21 14:01:41

标签: ruby-on-rails postgresql paperclip haml

在我的控制器中,我收到的电影是:

movies = Movie.active.includes(:likes).references(:likes).where("likes.user_id = ?", user.id).joins(:collections).active.uniq

然后我订购并过滤它们:

@movies = movies.order(query_order).offset(offset).limit(limit + 1)

PG中的此输出:错误:PG::InvalidColumnReference: ERROR: for SELECT DISTINCT, ORDER BY expressions must appear in select list

我很快发现您必须选择您订购的字段。所以我在查询中添加了.select("movies.*, likes.*")

movies = Movie.select("movies.*, likes.*").active.includes(:likes).references(:likes).where("likes.user_id = ?", user.id).joins(:collections).active.uniq

它工作得很好,除了现在Paperclip搞砸了很多时间。 HTML呈现完全与以前相同,但不知何故图像不显示/处理。

=image_tag movie.cover.url(:expanded), :class => "expanded"

当我从查询中删除.select("movies.*, likes.*").uniq时,它有重复的项目,但图片工作正常。

1 个答案:

答案 0 :(得分:1)

由于我与movies加入了likes,因此它检索了movie.idlikes.id

这个回形针助手无法处理两个id's,因此随机选择了likes id。

=image_tag movie.cover.url(:expanded), :class => "expanded" 

结果产生了错误的路径:iE。 /movies/system/007/movie_with_id_01_image.jpg

我必须更改select子句,现在不包括likes.id

.select("movies.*, likes.*")
.select("movies.*, likes.column_a, likes.column_b, ... , likes.column_x")

现在它终于再次运作了。