मैं रेल और टीडीडी के लिए बिल्कुल नया हूं (जैसा कि मेरी पोस्ट से कोई संदेह नहीं होगा) और मुझे अपने दिमाग को रुपेक और फैक्ट्रीगर्ल के चारों ओर लपेटने में कठिनाई हो रही है।फैक्टरीगर्ल + आरएसपीसी + रेल 3 'अपरिभाषित विधि <attribute> ='
मैं रेल 3 उपयोग कर रहा हूँ, rspec और कारखाने महिला:
gem 'rails', '3.0.3'
# ...
gem 'rspec-rails', '~>2.4.0'
gem 'factory_girl_rails'
मैं एक उपयोगकर्ता मॉडल है कि मैं गया है सफलतापूर्वक विकास के दौरान पर परीक्षण चल रहा है, लेकिन फिर एक विशेषता जोड़ने के लिए आवश्यक करने के लिए कहा जाता है, "स्रोत"। यह निर्धारित करने के लिए है कि मूल रूप से उपयोगकर्ता रिकॉर्ड कहां से आया था (स्थानीय बनाम एलडीएपी)।
मेरी factories.rb फ़ाइल में, मैं कई कारखानों को परिभाषित किया है, ऐसा ही कुछ देखने के लिए निम्नलिखित:
# An alumnus account tied to LDAP
Factory.define :alumnus, :class => User do |f|
f.first_name "Mickey"
f.last_name "Mouse"
f.username "mickeymouse"
f.password "strongpassword"
f.source "directory"
end
मैं एक मैक्रो परिभाषित (कि अब तक काम कर रहा है) है कि इस तरह दिखता है:
def login(user)
before(:each) do
sign_out :user
sign_in Factory.create(user)
end
end
मैं इतना (users_controller_spec.rb से उदाहरण) जैसे कई चश्मा में यह फोन कर रहा हूँ:
describe "for non-admins or managers" do
login(:alumnus)
it "should deny access" do
get :index
response.should redirect_to(destroy_user_session_path)
end
end
मैं "स्रोत" विशेषता निर्दिष्ट नहीं है, तो सब कुछ ठीक काम करता है, लेकिन जैसे ही मैं कर के रूप में, मैं बहुत की तरह एक त्रुटि जब परीक्षण
12) UsersController for non-admins or managers should deny access
Failure/Error: Unable to find matching line from backtrace
NoMethodError:
undefined method `source=' for #<User:0x00000100e256c0>
मैं से विशेषता कोई समस्या नहीं उपयोग कर सकते हैं चलाने के रेल कंसोल और ऐप स्वयं, और यह उपयोगकर्ता मॉडल में मेरे attr_accessible में सूचीबद्ध है। यह लगभग है जैसे कि रुपयेपीईसी मेरे मॉडल का पुराना संस्करण देख रहा है और यह स्वीकार नहीं कर रहा है कि मैंने इसमें एक विशेषता जोड़ा है। लेकिन अगर मैं मेरे उपयोगकर्ता मॉडल में निम्न पंक्ति डाल, त्रुटि गायब
attr_accessor :source
... जो मेरे लिए इंगित करता है कि यह वास्तव में सही मॉडल में दिख रही है।
सहायता!
धन्यवाद! हाँ - यह सब कुछ था ... परीक्षण डेटाबेस का उपयोग कर इसके बारे में भूल गया ... – dearlbry
बड़ी बचत! धन्यवाद @ टीके -421। पूरी तरह से भूल गया कि मैं परीक्षण डीबी में था ... – MorningHacker
भगवान आपको आशीर्वाद देते हैं सर – ant