2009-08-25 14 views
6

में अनुपलब्ध विशेषता है मेरे पास मॉडल Foo और Bar हैं। Bar में कॉलम foo_id है। जब मैं Bar.foo_id पर कॉल करता हूं तो मुझे त्रुटि मिलती है missing attribute: foo_idactiverecord

ध्यान रखें कि यह एक अपरिभाषित विधि त्रुटि नहीं है और कॉलम निश्चित रूप से डीबी में है। इसके कुछ सामान्य कारण क्या हैं?

धन्यवाद

+0

आप अपना बार कैसे लोड कर रहे हैं? –

उत्तर

35

शायद आपके के साथ कुछ करना है विधि? उदाहरण के लिए यदि आप एक किया था: एक खोज में चयन करें:

Foo.find(:all, :select => "firstvar, secondvar") 

उस मामले में, आप केवल पहुँच firstvar कर सकते हैं और secondvar भले ही आप foo_id परिभाषित

आशा है कि यह मदद करता है! =)

+1

मेरे पास default_scope था: शामिल => [: model1,: model2] परिभाषित किया गया .. इसके बजाय मैंने सभी आवश्यकताओं के साथ एक कस्टम स्कोप का उपयोग किया। –

+0

मेरे मामले में मुद्दा यह था कि ऑब्जेक्ट को कैश किया गया था और यह अभी भी पुराने संस्करण का उपयोग कर रहा था जिसमें नई विशेषता नहीं थी। एक बार कैश साफ़ हो जाने के बाद, चीजें अपेक्षित काम करती थीं। –

2

आप बार की आवृत्ति पर foo_id में देखने की जरूरत है आप

Bar.foo_id 

या

bar = Bar.new 
bar.foo_id 

बुला जब तक आप Bar के लिए एक वर्ग चर राशि रहे हैं,। मुझे आशा है कि वह मदद करेंगे। चीयर्स।