2015-12-29 6 views
8

में मॉड्यूल/नेमस्पेस की सभी सामग्री उपरोक्त वर्तमान प्रोजेक्ट की निर्भरताओं के साथ आईईएक्स लोड करने के तरीके के बारे में this question में सलाह के बाद मैं फीनिक्स फ्रेमवर्क निर्भरताओं के साथ एक सुंदर उत्पादक तरीके से काम करने में सक्षम था। हालांकि, यह हर चीज के लिए फीनिक्स परियोजना के नामस्थान प्रदान करने के लिए थोड़ा कठिन हो जाता है।आईएक्स

MyApp.Repo.all(MyApp.User) टाइप करने की बजाय मैं Repo.all(User) करने में सक्षम होने की उम्मीद कर रहा था। मैं alias MyApp.Repo, as: Repo के साथ व्यक्तिगत रूप से प्रत्येक चीज़ को उपनाम कर सकता हूं लेकिन क्या सब कुछ एक ही समय में ऐसा करने का कोई तरीका है?

उत्तर

11

आप MyApp.Repo, as: Repo के बजाय बस alias MyApp.Repo पर कॉल कर सकते हैं - यह मॉड्यूल नाम के अंतिम भाग का उपयोग करेगा।

अमृत 1.2 में आप एक कॉल के साथ अपने नाम करने के लिए कई submodules अन्य नाम पर कर सकते हैं: alias MyApp.{Repo, User}

तुम भी एक .iex.exs फ़ाइल जो आप अपने उपनाम स्थापित करने के लिए उपयोग कर सकते हैं का विकल्प है। आप इसके बारे में http://elixir-lang.org/docs/v1.1/iex/IEx.html पर पढ़ सकते हैं - मैं इस मामले में इसकी अनुशंसा नहीं करता क्योंकि आप नामकरण टकराव करने का जोखिम चलाते हैं। एक आईईएक्स सत्र में alias को कॉल करना अधिक स्पष्ट है।

+1

ऐसा लगता है कि यह बहुत अच्छा काम करेगा, धन्यवाद! मुझे लगता है कि प्रति परियोजना आधार पर iex.exs फ़ाइल में फीनिक्स मॉडल को अलियासिंग करना मुझे बहुत सारी टकरावों के बिना मुझे वही चाहिए जो मुझे चाहिए। –