ruby-on-rails - SELECT DISTINCT 的 PG 错误,尝试在 Heroku 上查看时,ORDER BY 表达式必须出现在选择列表中

标签 ruby-on-rails ruby-on-rails-3 postgresql heroku acts-as-taggable-on

在我向我的项目添加更多关系后,我收到此跟随错误。在本地主机上,页面显示得非常好。但是,当我尝试在 heroku 上查看它时出现错误。

ActiveRecord::StatementInvalid (PG::Error: ERROR:  for SELECT DISTINCT, ORDER BY expressions must appear in select list

这是我的 traveldeal Controller :

  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

<% 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 或 event_taggings_e9f0e2e.tag_id = 5) ORDER BY RANDOM()):

此代码有效,因此我只显示了 3 个与地点匹配(通过 act-as-taggable-on)与 traveldeal 的随机事件交易。

但是,在我添加关系(与 eventdeals 相关但与 traveldeals 无关)之后,我开始收到 pg 错误。

以下是添加的关系:

旅行.rb

class Trip < ActiveRecord::Base
  has_many :eventdealtrips, :dependent => :destroy
  has_many :eventdeals, :through => :eventdealtrips
end

eventdeal.rb

class Eventdeal < ActiveRecord::Base
  has_many :eventdealtrips
  has_many :trips, :through => :eventdealtrips, :dependent => :destroy
end

eventdealtrip.rb

class Eventdealtrip < ActiveRecord::Base
  belongs_to :eventdeal
  belongs_to :trip
end

关于我如何仍能获得 3 个事件交易的随机数组的任何建议?

谢谢。

最佳答案

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

关于ruby-on-rails - SELECT DISTINCT 的 PG 错误,尝试在 Heroku 上查看时,ORDER BY 表达式必须出现在选择列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10423713/

相关文章:

postgresql - Postgres/hstore : how to get IDs of rows with certain key in their hstore field?

ruby-on-rails - 如何在没有直接链接的情况下流式传输音频文件

ruby-on-rails - 为我的支付 Controller 实现 http

ruby-on-rails - 检查 ruby​​ on Rails 中是否禁用 Cookie

c# - 哪个 .NET ORM 对 PostgreSQL 数据库的支持最好

postgresql - docker-compose - 无法附加到容器

javascript - 谷歌分析 : User does not have sufficient permissions for this profile

javascript - 当用户点击按钮 5 次时如何执行警报?

ruby-on-rails - 如何使用 Rails.vim 和 spork?

javascript - JQuery +thumbs_up gem 渲染投票数?