मैं रेलवे पर बस कुछ रेलों का अभ्यास कर रहा हूं और कुछ ऐसा समझ गया हूं जिसे मैं समझने की कोशिश कर रहा हूं।रेल पर रूबी में स्वयं क्या करता है?
मुझे यह नहीं मिला कि प्रमाणीकरण विधि पर "स्वयं" क्या कर रहा था। इसलिए मैं इसे नष्ट कर दिया और अगर यह एक त्रुटि प्रदर्शित होगा देखने के लिए अपने ऐप के लॉगिन परीक्षण किया है और यह किया:
error:
**NoMethodError in SessionsController#create
undefined method `authenticate' for #<Class:0x00000102cb9000**>
मैं वास्तव में अगर किसी को समझा सकता है कि वास्तव में क्या है कि "स्व" क्या कर रहा है की सराहना करेंगे। मैं यह पता लगाने की कोशिश कर रहा था कि क्या हो रहा था लेकिन मेरे सिर को इसके चारों ओर नहीं मिल सका।
विधि मॉडल में परिभाषित किया गया है और सत्र_कंट्रोलर में कहा जाता है .. मैं लगातार अपने ऐप को हटा रहा हूं और इसे लटकने के लिए स्क्रैच से शुरू कर रहा हूं और हर बार जब मैं फिर से शुरू करता हूं तो मुझे कई चीजें समझ में आती हैं लेकिन मैं हूं "स्वयं" पर फंस गया।
मैं सिर्फ उस व्यक्ति का प्रकार हूं जो समझना पसंद करता है कि कुछ क्यों काम करता है।
नियंत्रक:
def create
user = User.authenticate(params[:email], params[:password])
if user
session[:user_id] = user.id
redirect_to root_path, :notice => "Logged In"
else
flash.now.alert = "Invalid credentials"
render "new"
end
end
मॉडल:
def self.authenticate(email, password)
user = find_by_email(email)
if user && user.password_hash == BCrypt::Engine.hash_secret(password, user.password_salt)
user
else
nil
end
end
आपके उत्तर में थोड़ा विस्तार: 'def object.my_foo_method'। 'Obj' पर' my_foo_method' परिभाषित करता है। आपके उत्तर के संदर्भ में, 'स्वयं' वर्ग 'वर्ग' (अर्थात वर्ग 'MyClass') का उद्देश्य है। इसलिए, यह उस वर्ग की विधि को परिभाषित करता है। – Swanand
उदाहरणों के लिए '@' चिह्न का उपयोग नहीं किया जाना चाहिए, उदा। @instance = ...? –
ने कहा कि यह रेल है और शायद इसे देखने में इस्तेमाल किया जाएगा –