首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PG SELECT DISTINCT错误,尝试在Heroku上查看时,ORDER BY表达式必须出现在select列表中

PG SELECT DISTINCT错误,尝试在Heroku上查看时,ORDER BY表达式必须出现在select列表中
EN

Stack Overflow用户
提问于 2012-05-03 08:48:19
回答 1查看 13.9K关注 0票数 18

在我向我的项目添加了更多的关系后,我得到了这个跟随错误。在localhost上,页面显示得非常好。然而,当我尝试在heroku上查看它时,我得到了一个错误。

代码语言:javascript
复制
ActiveRecord::StatementInvalid (PG::Error: ERROR:  for SELECT DISTINCT, ORDER BY expressions must appear in select list

这是我的traveldeal控制器:

代码语言:javascript
复制
  def show
    @traveldeal = @commentable = Traveldeal.find(params[:id])
    @comments = Comment.all
    @title = @traveldeal.title
    @eventdeals = Eventdeal.tagged_with(@traveldeal.location_tag_list, :any => true, :order => 'RANDOM()', :limit => 3)
  end

traveldeal/show.html

代码语言:javascript
复制
<% unless @eventdeals.blank? %>

  <h1>Events in the area:</h1>

  <% @eventdeals.each do |eventdeal| %>
    <%= link_to eventdeal do %>
      <!-- content -->
    <% end %>
  <% end %>

<% end %>

Heroku日志

SELECT DISTINCT eventdeals.* FROM "eventdeals" JOIN taggings event_taggings_e9f0e2e ON event_taggings_e9f0e2e.taggable_id = eventdeals.id AND event_taggings_e9f0e2e.taggable_type = 'Eventdeal' WHERE (event_taggings_e9f0e2e.tag_id = 1 OR event_taggings_e9f0e2e.tag_id = 3 OR event_taggings_e9f0e2e.tag_id = 4 OR event_taggings_e9f0e2e.tag_id = 5) ORDER BY RANDOM()):

这段代码工作正常,所以我只显示了3个随机的eventdeals,它们匹配位置(通过act-as-taggable-on)和一个traveldeal。

然而,在我添加了一个关系(与eventdeals相关,而不是traveldeals)之后,我开始收到pg错误。

下面是添加的关系:

trip.rb

代码语言:javascript
复制
class Trip < ActiveRecord::Base
  has_many :eventdealtrips, :dependent => :destroy
  has_many :eventdeals, :through => :eventdealtrips
end

eventdeal.rb

代码语言:javascript
复制
class Eventdeal < ActiveRecord::Base
  has_many :eventdealtrips
  has_many :trips, :through => :eventdealtrips, :dependent => :destroy
end

eventdealtrip.rb

代码语言:javascript
复制
class Eventdealtrip < ActiveRecord::Base
  belongs_to :eventdeal
  belongs_to :trip
end

有什么建议吗,我仍然可以得到一个随机数组的3个事件交易?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2014-05-08 00:24:41

我遇到了这个问题,并通过在我的菊花链末端运行order来解决它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10423713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档