2014-12-30 4 views
5

प्रश्न has_many question_tagsरेल से अधिक या उससे कम का उपयोग सक्रिय रिकॉर्ड क्वेरी

मैं सभी सवाल कि कैसे प्राप्त कर सकते हैं:

  1. नाम "जावास्क्रिप्ट"
  2. जवाब नहीं कर रहे हैं
  3. 2 "vote_count" की तुलना में अधिक है के साथ एक QUESTION_TAG है?

    Questions 
        is_answered:boolean 
        vote_count:integer 
    
    QuestionTags 
        name:string 
        question_id:integer 
    

    इस क्वेरी मैं अब तक है:

यहाँ टेबल रहे हैं। यह # 1 और # 2 करता है। मैं # 3 कैसे कर सकता हूं?

Question.joins(:question_tags).where(question_tags: {name: "javascript"}, question: {is_answered: false}) 

उत्तर

3

यह this question का डुप्लिकेट तरह दिखता है। आप जो चाहते हैं वह where के लिए स्ट्रिंग या सरणी वाक्यविन्यास है।

Question.joins(:question_tags).where(question_tags: {name: "javascript"}, is_answered: false).where(["#{Question.table_name}.vote_count > ?", 2]) 

अंतिम खंड में तालिका नाम शामिल करने के लिए अपडेट किया गया।

+0

"जहां वोट_count" खंड के लिए, मैं इसे "नौकरियों" तालिका पर कैसे specfically बना सकते हैं? मैं यह समझ नहीं पाया कि जॉइन() क्वेरी के साथ उस वाक्यविन्यास का उपयोग कैसे करें, यही कारण है कि यह डुप्लिकेट नहीं है। –

+0

मुझे लगता है कि आप प्रश्न तालिका का अर्थ लेंगे: '.where ([" # {Question.table_name} .vote_count>? ", 2])'। यदि आप वास्तव में नौकरियों का मतलब रखते हैं तो table_name प्राप्त करते समय 'प्रश्न' के बजाय 'जॉब' डालें। – Coenwulf

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