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

ruby on rails - El error de PG para las expresiones SELECT DISTINCT, ORDER BY debe aparecer en la lista de selección cuando se intenta ver en Heroku



ruby-on-rails ruby-on-rails-3 (1)

Tuve este problema y lo resolví ejecutando el order al final de mi cadena de margaritas.

Recibo este error de seguimiento después de agregar más relaciones a mi proyecto. En localhost, la página se muestra perfectamente bien. Sin embargo, recibo un error al intentar verlo en heroku.

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

Aquí está mi controlador de Traveldeal:

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 %>

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

Este código funcionaba, por lo que solo mostraba 3 eventos aleatorios que coincidían con la ubicación (a través de act-as-taggable-on) con un traveldeal.

Sin embargo, después de agregar una relación (relacionada con eventos de eventos pero no viajes), comencé a recibir el error pg.

Aquí están las relaciones que se agregaron:

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

¿Algún consejo sobre cómo puedo obtener una serie aleatoria de 3 eventos?

Gracias.