मैं Accounts.createUser() के साथ नया उपयोगकर्ता बना रहा हूं और यदि आप कुछ भी फैंसी नहीं कर रहे हैं तो यह सामान्य रूप से काम करता है। लेकिन मैं कुछ अन्य फ़ील्ड को नए उपयोगकर्ता में जोड़ना चाहता हूं जो दस्तावेज़ीकरण पर सूचीबद्ध नहीं हैं। यहां मेरा कोड है:accounts.onCreateUser नए उपयोगकर्ताओं, अच्छे प्रथाओं को बनाते समय अतिरिक्त विशेषताओं को जोड़ रहा है?
var options = {
username: "funnyUserNameHere",
email: "[email protected]",
password: "drowssap",
profile: {
name: "Real Name"
},
secretAttribute: "secretString"
};
var userId = Accounts.createUser(options);
इस उदाहरण में मैंने अपने विकल्प ऑब्जेक्ट में secretAttribute जोड़ा है। चूंकि यह दस्तावेज नहीं है, यह उचित है कि यह उपयोगकर्ता ऑब्जेक्ट के तहत मेरी विशेषता नहीं जोड़ रहा है।
तो मैं googled और पता लगा कि कुछ इस तरह काम कर सकते हैं:
Accounts.onCreateUser(function(options, user) {
if (options.secretAttribute)
user.secretAttribute = options.secretAttribute;
return user;
});
और हाँ! यह काम करता है, लेकिन हमेशा बटन होता है .. * लेकिन .. इसके बाद यह उपयोगकर्ता ऑब्जेक्ट के तहत प्रोफ़ाइल को सहेज नहीं रहा है। हालांकि यह काम करता है:
Accounts.onCreateUser(function(options, user) {
if (options.secretAttribute)
user.secretAttribute = options.secretAttribute;
if (options.profile)
user.profile = options.profile;
return user;
});
तो मैं आपसे क्या चाहता हूं?
- मैं जानना चाहता हूं कि क्यों मेरे मामले में क्रिएट यूज़र प्रोफाइल खो देता है (उपरोक्त फिक्स से पहले)?
- क्या मेरा दृष्टिकोण अच्छा अभ्यास है?
- क्या उन्हें बनाने के दौरान उपयोगकर्ता ऑब्जेक्ट के लिए अतिरिक्त विशेषताओं को जोड़ना बेहतर समाधान है?
ps: मैं सोचता यह स्पष्ट है कि मैं क्यों प्रोफ़ाइल के तहत सभी अतिरिक्त क्षेत्रों को बचाने के लिए नहीं करना चाहते हैं;)
वहाँ मूल implementaion कॉल करने के लिए एक व्यवस्थित तरीका है? जैसे 'सुपर' – ApriOri