2011-12-27 14 views
24

के लिए अपरिभाषित विधि 'mass_assignment_sanitizer =' माइकल हार्टल द्वारा रेल ट्यूटोरियल पर रूबी रूबी के साथ रेल सीख रहा है। मैं section 3.2.2 (Test Driven Development) जिसमें मैं अपने रेल परियोजना के लिए rspec परीक्षण चलाने के लिए निम्न आदेश चलाने की आवश्यकता पर हूँ:ActiveRecord :: बेस: कक्षा (NoMethodError)

bundle exec rspec spec/ 

लेकिन यह काम नहीं करता। इसके बजाय मैं इस त्रुटि मिलती है:

/Users/mh/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/gems/1.9.1/gems/ 
activerecord-3.1.3/lib/active_record/base.rb:1088:in `method_missing': 
undefined method `mass_assignment_sanitizer=' for 
ActiveRecord::Base:Class (NoMethodError) 

मैं rspec और changing my Gemfile फिर से स्थापित करने की कोशिश की है, लेकिन कुछ भी अपरिभाषित विधि त्रुटि appeases!

+0

ओह, जब भी मैं 'rspec spec /' चलाने की कोशिश करता हूं, मुझे 'आदेश नहीं मिला' त्रुटि मिलती है। –

+0

स्लैश पीछे पीछे बिना प्रयास करें। 'rspec spec'। (* बस सोच रहा है *) –

+0

दुर्भाग्य से मुझे अभी भी स्लैश के बिना एक ही त्रुटि मिलती है। –

उत्तर

69

क्या आपने रेल 3.2 आरसी 1 से डाउनग्रेड किया था? अपने development.rb से निम्नांकित दो पंक्तियों को बाहर टिप्पणी:

config.active_record.mass_assignment_sanitizer = :strict 
config.active_record.auto_explain_threshold_in_seconds = 0.5 
+0

3.2 से 3.1.2 तक डाउनग्रेड करने के बाद यह मेरे लिए पूरी तरह से काम किया! –

+2

आरएसपीईसी का उपयोग कर टीएस के बाद से, उसे विकास.आरबी – henghonglee

+2

के बजाय test.rb में लाइन पर टिप्पणी करनी चाहिए, यह वही समस्या थी और रेल 3.2 से 4.2 तक अपग्रेड करते समय ठीक हो गई थी – andrewcockerham

1

m818 के जवाब समस्या का समाधान होगा, वहीं आप त्रुटियों आप अपने कोड में कहीं पदावनत तरीकों का उपयोग करने के लिए tyring कर रहे हैं मिल सकता है।

मुझे एक ही समस्या थी, उन पंक्तियों पर टिप्पणी करते हुए कुछ त्रुटियों से छुटकारा पा लिया, लेकिन उनमें से सभी, कहीं भी मैं attr_accessible का उपयोग कर रहा था, मुझे एक ही त्रुटि मिली।

यह 'active_record' मणि बन गया जो 4.0 को अपडेट किया गया था जब मैं इसे नहीं चाहता था। जब से मैं एक Padrino एप्लिकेशन का उपयोग कर रहा है, मैं Gemfile में ऐसा करने के लिए किया था:

gem 'activerecord', '= 3.2.12', :require => "active_record" 

सभी मुद्दों का हल और मैं database.rb में लाइनों बाहर टिप्पणी करने के लिए नहीं था कि।