2012-06-04 15 views
5

मेरे कोड:अपरिभाषित विधि

class User < ActiveRecord::Base 
    belongs_to :university 
end 

class University < ActiveRecord::Base 
    has_many :users, dependent: :destroy 
end 

और अपने मॉडल उपयोगकर्ता एक university_id विशेषता है।

मैं उन की सूची प्राप्त अगर मैं University.find(1).users करते हैं, लेकिन अगर मैं User.find(1).university (और मैं जाँच की है कि university_id यहां नहीं के बराबर नहीं है) मैं:

NoMethodError: undefined method `university' for #<User:0x00000003859fc8> 
from /home/mari/.rvm/gems/ruby-1.9.2-p290/gems/activemodel-3.0.10/lib/active_model/attribute_methods.rb :392:in `method_missing' 
from /home/mari/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.0.10/lib/active_record/attribute_methods. rb:46:in `method_missing' 
from (irb):14 
from /home/mari/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.0.10/lib/rails/commands/console.rb:44:in`start' 
from /home/mari/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.0.10/lib/rails/commands/console.rb:8:in start' 
from /home/mari/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.0.10/lib/rails/commands.rb:23:in 
`<top (required)>' 
from script/rails:6:in `require' 
from script/rails:6:in `<main>' 

क्या मैं गलत कर रहा हूँ? मेरे पास एक और मॉडल हैं और वे ठीक काम कर रहे हैं। कोई सुझाव? अग्रिम धन्यवाद

+1

कि अजीब है की कोशिश करें, जब आप लिखते हैं कि क्या होता है ** User.new.university **? –

+0

मुझे बस "शून्य" – marimaf

+0

डेटाबेस में कॉलम मौजूद है? आमतौर पर यह इस त्रुटि का कारण है। – Eraden

उत्तर

6

में मैं अभी भी टिप्पणी नहीं कर सकता तो मैं एक जवाब जला देंगे: किसी तरह belongs_to

: उपयोगकर्ता मॉडल में विश्वविद्यालय स्तर पर मान्यता प्राप्त किया जा रहा है। परीक्षण करते समय, क्या आप निश्चित हैं कि उपयोगकर्ता मॉडल सहेजा गया है और सही जगह पर है और सर्वर या कंसोल को रीफ्रेश किया गया है? आमतौर पर, मेरे अनुभव में, जब मैं मॉडल के साथ दखल दे रहा हूं, तो मुझे साफ-सुथरा परिणाम प्राप्त करने के लिए अक्सर अपने सर्वर और कंसोल को रीफ्रेश करना होगा।

+0

उन पंक्तियों के साथ, क्या आप किसी मणि या लाइब्रेरी में अन्य उपयोगकर्ता कक्षाएं हैं जिनका उपयोग आप कर रहे हैं? क्या आपकी उपयोगकर्ता कक्षा उचित फ़ाइल स्थान (/app/models/user.rb) में है? ऐसा लगता है कि लोड- आदेश समस्या या फ़ाइल समावेशन समस्या मुझे - आपका कोड जो आपने पोस्ट किया है उससे ठीक है। –

+1

तो ऐसा होता है कि लैम्ब्डा रेड सही था। आज मैं फिर से काम करना शुरू कर रहा था और समस्या हल हो गई थी! मुझे लगता है कि कंसोल (या सर्वर) का रीबूट चाल था। मैं अब बेवकूफ महसूस करता हूँ। मैं बस इसके चारों ओर अपना मन नहीं प्राप्त कर सकता, क्यों एक "पक्ष" काम कर रहा था और दूसरा कोई नहीं था ... किसी भी तरह .. अब यह काम कर रहा है। धन्यवाद! – marimaf

+1

बिल्कुल सही! 'पुनः लोड करें!' प्रत्येक मॉडल परिवर्तन के बाद –

1

User.where("id =?", 1).first.university 
+0

बनाने के लिए एक अच्छी आदत है, धन्यवाद, जिसे पहले से ही एक साल पहले हल किया गया था। – marimaf