Otrzymuję następujący błąd po dodaniu więcej relacji do mojego projektu. Na localhost strona wyświetla się doskonale. Jednak pojawia się błąd podczas próby wyświetlenia go na heroku.Błąd PG dla SELECT DISTINCT, ORDER BY wyrażenia muszą pojawić się na liście wyboru podczas próby wyświetlenia na Heroku
ActiveRecord::StatementInvalid (PG::Error: ERROR: for SELECT DISTINCT, ORDER BY expressions must appear in select list
Oto mój kontroler 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 %>
Heroku kłody
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()):
Ten kod był w orking, dzięki czemu wyświetlałem tylko 3 przypadkowe zdarzenia, które pasowały do lokalizacji (poprzez działanie "act-as-taggable-on") z traveldealsem.
Jednak po dodaniu związku (związanego z zdarzeniami, ale nie traveldeals), zacząłem otrzymywać błąd pg.
Oto relacje, które zostały dodane:
trip.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
Wszelkie porady, w jaki sposób Mogę stil Otrzymuję losową tablicę 3 eventdeals?
Dzięki.
Nie jestem pewien, czy podążam za tobą. Zaktualizowałem swój wpis o szczegóły w dzienniku Heroku. – Huy
Id również bardziej jasne odpowiedzi, mam ten sam problem. Chcę tylko losować kolejność mojego zapytania. – rugbert