मैं काम करने के लिए काम करने की कोशिश कर रहे रेल कंसोल में चारों ओर खेल रहा हूं, और मैं यह देख रहा हूं कि मेरे प्रश्नों में से एक यह वापस लौटता रहता है जब इसे ' टी। जेनरेट की गई SQL क्वेरी को देखने पर मुझे लगता है कि इसमें प्रत्येक बार AND (1=0)
शामिल है। यह बहुत परेशान है, और मुझे यकीन नहीं है कि यह क्यों कर रहा है।ActiveRecord प्रश्नों के अंत में 'AND (1 = 0)' को जोड़ता है
नोट: कार्यशील मणि का उपयोग करना।
कदम पुन: पेश करने:
2.1.2 :xxxx > @parent = Parent.take
Parent Load (38.1ms) SELECT `parents`.* FROM `parents` LIMIT 1
=> #<Parent id: 37, ...>
2.1.2 :xxxx > @child = Child.where(id: @parent.actable_id)
SQL (0.7ms) SELECT `childs`.`id` AS t0_r0, `childs`.`attribute` AS t0_r1, FROM `childs`
...
LEFT OUTER JOIN `parents` ON `parents`.`actable_id` = `childs`.`id` AND `parents`.`actable_type` = 'child type' WHERE `childs`.`id` = 20 AND (1=0)
=> #<ActiveRecord::Relation []>
हो रहा क्यों है (रेल कंसोल में तालिकाओं के लिए कनेक्ट करने के बाद)? मैं इसे कैसे रोकूं? जब आप एक स्तंभ जिसका मूल्य एक खाली सरणी में है के लिए क्वेरी
मैं देखा कि रेल इस प्रश्न के लिए ऐसा करता है: 'User.where (: id => []) ', चूंकि आप एसक्यूएल में आईडी() 'में उपयोगकर्ताओं से' चयन * नहीं लिख सकते हैं। तो मुझे लगता है कि यह दृष्टिकोण उन प्रश्नों के लिए होता है जो जानते हैं कि कुछ भी वापस नहीं आएगा, लेकिन यह एसक्यूएल में व्यक्त नहीं हो सकता है। – MaxGabriel
@MaxGabriel यह मेरे लिए जवाब था। शायद इसे सिर्फ एक टिप्पणी के बजाय उत्तर के रूप में रखें? – jgraft
@jgraft अच्छा विचार, मैंने आपको यह उत्तर दिया जैसा आपने सुझाया था। – MaxGabriel