PG-Fehler bei SELECT DISTINCT, ORDER BY expressions must appear in select-Liste, wenn Sie versuchen, um anzeigen auf Heroku

Ich bekomme folgende Fehler, nachdem ich fügte hinzu, mehr Beziehungen zu meinem Projekt. Auf localhost, zeigt die Seite völlig in Ordnung. Jedoch bekomme ich eine Fehlermeldung, wenn Sie versuchen, um es anzuzeigen auf heroku.

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

Hier ist mein 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 logs

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()):

Dieser code war arbeiten, so dass ich nur angezeigt, 3 random eventdeals, dass abgestimmt Standort (über act-as-taggable-on) mit einem traveldeal.

Nachdem ich jedoch Hinzugefügt, eine Beziehung (in Bezug auf eventdeals aber nicht traveldeals), begann ich immer die pg-Fehler.

Hier sind die Beziehungen, die Hinzugefügt wurde:

Reise.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

Einen Rat, wie ich kann immer noch ein random array mit 3 eventdeals?

Dank.

InformationsquelleAutor der Frage Huy | 2012-05-03

Schreibe einen Kommentar