15

पर देखने की कोशिश कर रहा है, मुझे अपनी परियोजना में अधिक रिश्ते जोड़ने के बाद यह अनुवर्ती त्रुटि मिल रही है। स्थानीयहोस्ट पर, पृष्ठ पूरी तरह से ठीक दिखाता है। हालांकि, उसे हेरोकू पर देखने का प्रयास करते समय मुझे एक त्रुटि मिलती है।चयन डिस्टिंट के लिए पीजी त्रुटि, अभिव्यक्तियों द्वारा आदेश को चुनिंदा सूची में प्रकट होना चाहिए जब हेरोकू

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

यहाँ मेरी 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 लॉग

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

इस कोड को w था ऑर्किंग ताकि मैंने केवल 3 यादृच्छिक घटनाओं को प्रदर्शित किया जो मिलान स्थान के साथ मिलान किए गए स्थान (एक्ट-ए-टैगगेल-ऑन के माध्यम से)।

हालांकि, मैंने रिश्ते को जोड़ने के बाद (घटनाओं से संबंधित लेकिन ट्रैवलडेल्स से संबंधित), मुझे पीजी त्रुटि प्राप्त करना शुरू कर दिया।

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 

पर कैसे किसी भी सलाह:

यहाँ रिश्तों कि जोड़ दिया गया हैं मैं stil कर सकते हैं मैं 3 eventdeals की एक यादृच्छिक सरणी मिलता है?

धन्यवाद।

उत्तर

7

आपकी क्वेरी रेल 3 के मानकों का पालन नहीं करती है और मैं आपको खराब निर्माण समाधान नहीं देना चाहता हूं।

नीचे दिया गया पोस्ट आपके प्रश्न का उत्तर देता है और रेल 3 सम्मेलनों का पालन करता है।

Rails 3, ActiveRecord, PostgreSQL - ".uniq" command doesn't work?

0

समस्या जो ऑर्डर द्वारा ऑर्डर को आउटपुट कॉलम में संदर्भित किया जाना चाहिए। परिणामस्वरूप एसक्यूएल देखें, जो विफल रहता है: स्थिति और स्पष्ट होनी चाहिए।

+1

बिल्कुल यकीन नहीं है कि मैं आपका अनुसरण कर रहा हूं। मैंने अपने पोस्टोकू लॉग में विवरण के साथ अपनी पोस्ट अपडेट की। – Huy

+3

आईडी एक और स्पष्ट उत्तर की तरह है, मुझे एक ही समस्या है। मैं सिर्फ अपनी क्वेरी के क्रम को यादृच्छिक बनाना चाहता हूं। – rugbert

2

मैं इस मुद्दे था और मेरे डेज़ी श्रृंखला के अंत में order चलाकर इसे हल।

संबंधित मुद्दे