2012-06-14 12 views
9

से दिखाई नहीं दे रहा एक बैठक मॉडल है मैं नया मीटिंग फॉर्म देखता हूं, स्थान फ़ील्ड खाली हैं! मुझे केवल स्थान लेबल दिखाई देता है लेकिन कोई अन्य स्थान फ़ील्ड नहीं। मैं पिछले 3 घंटों के लिए स्पष्टीकरण की तलाश में हूं, बहुत सारे मुद्दों के बारे में पता चला लेकिन कोई किस्मत नहीं।रेल has_one संघ fields_for रूप

धन्यवाद।

+0

को मैं अपने ब्राउज़र को पुन: प्रारंभ कोशिश करते हैं और अब मैं अब fields..but देखते हैं जब पर्चे को जमा करने के बजाय URL में "location_attributes" प्रदर्शित है, यह है, "स्थान" => {"name" => "sdsds", "street" => "sdsdsds", ..} क्योंकि किस स्थान का स्वचालित रूप से निर्माण नहीं किया जा रहा है, लेकिन एक नई मीटिंग बनाई गई है। – absolutskyy

उत्तर

17

स्थान फ़ील्ड प्रदर्शित नहीं होने का कारण यह है कि जब आप @meeting = Meeting.new के साथ एक नई मीटिंग बनाते हैं, तो इस मीटिंग में अभी तक कोई मीटिंग स्थान नहीं है। अगर आप @ मीटिंग.लोकेशन कहते हैं, तो आपको शून्य मिलेगा। इस कारण से, फ़ॉर्म स्थान के लिए फ़ील्ड प्रदर्शित नहीं करता है।

इसे ठीक करने के लिए, आपको एक नई मीटिंग बनाने के बाद @meeting.build_location पर कॉल करना चाहिए। वह नई बैठक को एक खाली स्थान से जोड़ देगा।

संपादित करें: बदलते fields_forf.fields_for

+0

धन्यवाद लेकिन जैसा कि मैंने ब्राउजर को फिर से खोलने और सर्वर को पुनरारंभ करने के बाद कहा था कि खेतों में दिखाया गया था। अब मेरी समस्या यह है कि जब मैं एक मीटिंग सहेजता हूं, तो स्थान स्वचालित रूप से अपेक्षित रूप से सहेजा नहीं जाता है। मुझे लगता है कि संकेत यूआरएल में है क्योंकि पैराम में मेरा स्थान "location_attributes" नहीं कहता है, यह सिर्फ स्थान कहता है। – absolutskyy

+0

देखें कि मेरे EDIT में परिवर्तन समस्या को हल करता है या नहीं। – cdesrosiers

+0

हां, दोनों का एक संयोजन काम किया। 1) जोड़ा f.fields_for 2) जोड़ा @ meeting.build_location। बहुत सी cdesrosiers धन्यवाद – absolutskyy

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