2014-12-10 18 views
6

मैं अध्याय 8 Click here for details पर रेल ट्यूटोरियल पर माइकल हार्ट की रूबी पर काम कर रहा हूं, मैं अभ्यास 8.6 पर फंस गया हूं, लेखक ने एकीकरण परीक्षण में वर्चुअल याद_टोकन विशेषता तक पहुंचने का एक तरीका पेश किया और उसने हमारे लिए कुछ काम छोड़ दिया,एकीकरण परीक्षण में वर्चुअल remember_token विशेषता का उपयोग कैसे करें?

assert_equal assigns(:user).FILL_IN, FILL_IN 

मुझे "FILL_IN" प्लेसहोल्डर के साथ सही कोड को प्रतिस्थापित करना चाहिए। मैं सिर्फ सही के बारे में नहीं सोच सका। मैं के साथ

assert_equal assigns(:user).cookies, remember_token 

एप्लिकेशन/नियंत्रक/sessions_controller.rb

def create 
    @user = User.find_by(email: params[:session][:email].downcase) 
    if @user && @user.authenticate(params[:session][:password]) 
     log_in @user 
     params[:session][:remember_me] == '1' ? remember(@user) : forget(@user) 
     redirect_to @user 

की कोशिश की लेकिन यह काम नहीं किया, Erros:

"test_login_with_remembering", UsersLoginTest, 0.590876] 
test_login_with_remembering#UsersLoginTest (0.59s) 
NoMethodError:   NoMethodError: undefined method `cookies' for #<User:0x007f964f1a91d0> 

मैं वास्तव में पता है कि यह बहुत ही सरल कुछ है, मैं कुछ शोध किया, ऐसा लगता है कि किसी ने भी एक ही सवाल नहीं पूछा है, क्योंकि ट्यूटोरियल काफी नया है। कृपया समझें कि मैं सिर्फ एक नौसिखिया हूं, अगर आप इस समस्या को हल करने में मेरी मदद कर सकते हैं तो मुझे बहुत सराहना की जाएगी।

+0

आप उपयोगकर्ता विशेषता या उपयोगकर्ता पद्धति के रूप में कुकीज़ का उपयोग कर रहे की तरह काम करता है। आप 'users (: user) .cookies' को @ user.cookies के रूप में असाइन कर सकते हैं जो गलत है (कुकीज उपयोगकर्ता पर निर्भर नहीं है और कंप्यूटर में संग्रहीत हैं, रेल अनुप्रयोग में नहीं)। – Katarzyna

उत्तर

12

मुझे माइकल की पुस्तक खरीदने से जवाब मिला है। और जवाब समाधान मैनुअल में शामिल है। मुझे लगता है कि साझा करने के लिए के बाद से मैं इस प्रश्न पूछा है लायक है

assert_equal assigns(:user).remember_token, cookies['remember_token'] 

यह लायक कुछ भी नहीं है कि, माणिक भाषा के बारे में पढ़ना बहुत इस कोड को समझने के लिए उपयोगी हो जाएगा, मेरे समस्या गया था मैं बहुत रूबी के बारे में पढ़ने से पहले नहीं किया है मैं रेल अध्ययन में गोता लगाता हूं, लेकिन यह एक बड़ी समस्या नहीं है, मैं रुबी भाषा के बारे में गहरी समझ पाने के लिए बस रुबी से शुरुआत कर चुका हूं! गुड लक

+2

मुझे अभी भी एक त्रुटि है, सुनिश्चित नहीं है क्यों: NoMethodError: शून्य के लिए अपरिभाषित विधि 'remember_token': NilClass – Katarzyna

+0

अरे, मैं आपको माइकल के जिथब रेपो को देखने के लिए सुझाव दूंगा। यह सब वहाँ है। – Snailwalker

0

मैं जब मैं @Snailwalker

तरह

assert_equal assigns(:user).remember_token, cookies['remember_token']

की कोशिश की त्रुटि मिली है लेकिन यह इस

assert_equal assigns[:user].remember_token, cookies['remember_token']

संबंधित मुद्दे