variables - Rails - undefined method `name' for nil:NilClass -


त्वरित प्रश्न यहां मेरा कोड है:

  # स्ट्रेट्स map.resources: ग्राहकों ,: has_many = & gt; [: पते,: मैचिंग्स] map.connect ": नियंत्रक /: कार्रवाई /: आईडी" # पथ: http://127.0.0.1:3000/ ग्राहक / इंडिक्स / 3 # ग्राहक नियंत्रक डीईएफ़ इंडेक्स @ ग्राहक = ग्राहक.पहले (पाराम [: आईडी]) अंत # ग्राहक देखिए / index.html.erb ... & lt;% = @ customer.name% & gt; ...  

त्रुटि: अपरिभाषित विधि `नाम 'शून्य के लिए: NilClass।

यहाँ मेरा तर्क है पैरामीटर: आईडी मेरे यूआरएल पथ से आ रहा है (यानी हम उपरोक्त पथ में ग्राहक # 3 की तलाश कर रहे हैं)। @ ग्राहक को उस सरणी को आसानी से मिलना चाहिए, फिर ग्राहक नाम। नाम का निर्माण करना चाहिए, लेकिन जाहिरा तौर पर @ ग्राहक कस्टम है क्यों?

मुझे लगता है कि समस्या यह है कि मैं अपने नियंत्रक में कोई सरणी नहीं बना रहा हूं?

------ UPDATE ------ < हाय लैरी, टिप्पणियों के लिए बहुत बहुत धन्यवाद।

'सूचकांक' से मेरा क्या मतलब है वास्तव में एक होम पेज है जब ग्राहक साइट पर लॉग इन करते समय हिट हो जाएंगे । (मेरे पास नियोक्ता जैसे अन्य उपयोगकर्ताओं के लिए अलग-अलग लॉगिन भी हैं और वे अपनी खुद की इंडेक्स पर जाते हैं)। मैं वर्तमान में 'सूची' का उपयोग ग्राहकों की सूची के रूप में कर रहा हूं और एक व्यक्ति के लिए 'शो' ... एक बेहतर तरीका है?

दूसरा और सबसे महत्वपूर्ण: लॉग मुझे जवाब नहीं दे रहा है मूलभूत समस्या, जो पृष्ठ को प्रस्तुत करने में अक्षम है।

  प्रोसेसिंग ग्राहक नियंत्रक # इंडेक्स (127.0.0.1 के लिए 2010-05-16 16:56:19 पर) [गेट] पैरामीटर: { "एक्शन" = & gt; "इंडेक्स", "आईडी" = & gt; "10", "नियंत्रक" = & gt; "ग्राहक"} ... [4; 36; 1mCustomer लोड (2.0ms) [0m [0; 1mSELECT * "ग्राहकों" से WHERE ("ग्राहक"। "आईडी" = 10) [0 एम [4] 35; 1 एम मैचिंग लोड (24.0 एम) [0 एम [0 मील * * से "मिलान" WHERE ("मिलान"। Customer_id = 10) [ 15 एमएमएस में पूर्ण 0 एम (देखें: 18, डीबी: 26) | 200 ओके [http://127.0.0.1/customers/index/10]  

------ अपडेट # 2 (आखिरी!) ------

मैंने आपकी सभी टिप्पणियों के माध्यम से पढ़ा और उन्होंने मेरी सहायता में न केवल मेरी समस्या पर प्रगति की है बल्कि यह भी जानने के लिए कि टुकड़ों में एक साथ कैसे फिट है इसके लिए, हर किसी के लिए धन्यवाद।

एलेक्स सही है - मेरे मार्गों की जरूरत नहीं है कि उन्हें कैसे जरूरत है। मैंने गृह नामक अपने ग्राहक नियंत्रक में एक नई कार्रवाई की। यह ग्राहक के घर आधार है जब वे लॉग इन करते हैं (यह एक ग्राहक के बारे में जानकारी प्रदर्शित नहीं करता है, इसलिए यह संभवतः शो नहीं होना चाहिए, और यह एक सूची नहीं है, इसलिए इसे इंडेक्स या सूची नहीं होना चाहिए)।

<पूर्व> रेक मार्गों ... ... मुझे ऐसे मार्गों की एक सूची देता है जो घर में शामिल नहीं होता है क्यूं कर?

दूसरा, यदि मार्ग प्रदर्शित किया गया है, उदाहरण के लिए:

 : action = & gt; आईडी:  

मुझे यह स्वीकार करने के लिए उस मार्ग को बदलने के लिए क्या करना होगा?

रेक मार्गों पर एक नज़र डालें। किसी संसाधन के लिए सूचकांक क्रिया आईडी से मेल नहीं खाती मुझे संदेह है कि रेल ने इंडेक्स एक्शन के लिए पैरामीटर को आईडी भी नहीं डाला। रयान की तरह, आपको इसके लिए शो की कार्रवाई का उपयोग करना चाहिए, और शो एक्शन के लिए यूआरएल http: // localhost: 3000 / customers / 3 होगा।

यदि आप प्रबल संसाधनों का उपयोग करने जा रहे हैं, संभवतः आप डिफ़ॉल्ट map.connect से छुटकारा चाहते हैं: नियंत्रक /: क्रिया /: आईडी " मार्ग।


Comments