Rails 4 joins query display the wrong resource -
मेरे पास 2 संसाधन, डॉक्टर और आरक्षण हैं।
वर्ग डॉक्टर & lt; ActiveRecord :: बेस है has_many: आरक्षण अंत वर्ग आरक्षण & lt; ActiveRecord :: बेस के लिए संबंधित है: डॉक्टर अंत स्कीमा: create_table "आरक्षण", बल: सच do | t | T.integer "doctor_id" t.date "date" अंत create_table "डॉक्टरों", बल: सच do | t | T.string "description" t.datetime "created_at" t.datetime "updated_at" end मैं एक तिथि पर उपलब्ध सभी डॉक्टरों को प्रदर्शित करना चाहता हूं, इसलिए सभी डॉक्टरों के पास न हों उस दिन पर आरक्षण।
मेरी क्वेरी: <पूर्व> डीईफ़ सूचकांक डॉक्टरों = डॉक्टर.ऑलडर ("बनाया गया डीएएससी") डॉक्टरों = @ डॉक्टरों.जंक्स (: आरक्षण)। Where.not ('reservations.date की तरह?', पैरामीटर [: फ्री_ऑन]) यदि पराम [: मुफ्त_ऑन] .प्रदर्शित? @ डॉक्टरों = @ डॉक्टरों (पृष्ठ: पृष्ठ = & gt; पैराम्स [: पृष्ठ],: per_page = & gt; 9) अंत मेरी समस्या यह है: यह प्रश्न मुझे आरक्षण के रूप में देता है परिणाम। अगर मेरे पास 1 डॉक्टर और 3 आरक्षण मेरे डेटाबेस में हैं, और मैं 1 नवंबर का (1 तारीख को 1 आरक्षण) का चयन करता हूं, तो 2 नवंबर को उसी आरक्षण के लिए मुझे 2 बार दिखाता है। / P>
मैंने कोशिश की। ग्रुप, लेकिन फिर से मुझे सिर्फ 1 डॉक्टर दिखाए गए हैं यदि कोई आरक्षण है ...
किसी ने मेरे प्रश्न में क्या गलत है? < P>
आपकी क्वेरी का पूरा आधार गलत है।
@ डॉक्टरों = @ डॉक्टरों.जंक्स (: आरक्षण)। Where.not ('reservations.date की तरह?', पैरामीटर [: फ्री_ऑन]) आपको डॉक्टर मिल रहे हैं "फ्री_ऑन" के अलावा अन्य दिनों में आरक्षण है - भले ही उनके पास "free_on" पर कोई आरक्षण है या नहीं ऐसा नहीं है कि आप क्या करना चाहते हैं आप उन डॉक्टरों को ढूंढना चाहते हैं जिनके पास "फ्री_ऑन" पर कोई आरक्षण नहीं है।
@doctors = @ डॉक्टरों कहां ("मौजूद नहीं है (आरक्षण से * चुनें * जहां डॉक्टर_आईडी = डॉक्टर।
Comments
Post a Comment