[ruby-on-rails] एक परियोजना में रेल नियंत्रक और मॉडल का नाम कैसे बदलें



Answers

नोबिता के जवाब के अलावा आपको corps को store करने के लिए परीक्षण और सहायक वर्ग परिभाषाओं और फ़ाइल नामों को बदलने की आवश्यकता है। अधिक महत्वपूर्ण रूप से आपको अपनी कॉन्फ़िगर / path.rb फ़ाइल में store करने के लिए corps बदलना चाहिए

तो कुल मिलाकर आप नियंत्रक, संबंधित मॉडल, दृश्य, हेल्पर्स, टेस्ट और रूट फ़ाइलों में परिवर्तन कर रहे हैं।

मुझे लगता है कि आपने जो देखा है उसे destroy और generate destroy साथ सुझाया गया एक बेहतर विकल्प है। मैंने जवाब दिया है कि इसे यहां कैसे करें: रेल: एक नियंत्रक और इसी मॉडल का नाम बदलना

Question

मैंने एक रेल ऐप शुरू किया और सब कुछ ठीक काम करता है। लेकिन अब, मैं एक नियंत्रक और संबंधित मॉडल का नाम बदलना चाहता हूं:

मैं मॉडल के लिए Corps नियंत्रक को Stores और वही (अंतिम एस के बिना) में बदलना चाहता था।

Google पर देखकर, लोगों को नष्ट करने का सुझाव दिया गया और फिर नियंत्रक और मॉडल को फिर से उत्पन्न किया गया। समस्या यह है कि यह प्रत्येक फाइल के वास्तविक कोड मिटा देगा!

कोई भी समाधान? अग्रिम में धन्यवाद।




एक अन्य महत्वपूर्ण बात यह है कि आपको मॉडल एसोसिएशन को अपडेट करने की आवश्यकता है, जो आपको करना होगा कि आप मैन्युअल रूप से नाम बदलते हैं या नष्ट करते हैं और संसाधन उत्पन्न करते हैं (क्योंकि वे अन्य मॉडलों में मौजूद हैं)। आप या तो डेटाबेस में विदेशी कुंजी के कॉलम नाम बदलने के लिए माइग्रेशन चला सकते हैं और कोड में उन विदेशी कुंजी के सभी संदर्भों को बदल सकते हैं:

rename_column :table, :old_id, :new_id

या पुराने विदेशी कुंजी का उपयोग करने वाले एसोसिएशन की घोषणा करते समय कस्टम विदेशी कुंजी सेट करें:

belongs_to :new, foreign_key: "old_id"

इसके अलावा यदि आपके संसाधन में छवियां शामिल हैं, तो वे अक्सर उस निर्देशिका में संग्रहीत होते हैं जिसमें संसाधन का नाम शामिल होता है लेकिन संसाधन के नाम को बदलने के बाद (कम से कम वाहक के साथ) उन्हें गलत तरीके से संदर्भित किया जाएगा (फ़ाइल '/ अपलोड / पुरानी / छवि / 1 / pic.jpg 'लेकिन' अपलोड / नया / ... 'पर देखा जाता है), इसलिए आपको छवियों को हटाना और पुनः अपलोड करना होगा, उन्हें नए पथ पर ले जाना होगा, या शायद वे कहां बदल सकते हैं' फिर से देखा जा रहा है।




और यदि आपके पास मॉडल परीक्षण हैं, तो आपको बदलने की जरूरत है:

फ़ाइल का नाम बदलें: corp_test.rb -> store_test.rb (नियंत्रक परीक्षण, एकीकरण परीक्षण, स्थिरता इत्यादि के लिए भी)

Store_test.rb का कोड: क्लास StoreTest के लिए क्लास कॉर्पटेस्ट बदलें।

और नियंत्रक, मॉडल, एकीकरण, स्थिरता परीक्षण में कॉर्प के सभी संदर्भ।




नियंत्रक के लिए यदि आप इसे मैन्युअल रूप से कर रहे हैं तो आपको निम्न स्थानों में परिवर्तन करना होगा:

  • मार्ग
  • एप्लिकेशन / विचारों
  • एप्लिकेशन / नियंत्रकों
  • परीक्षा / नियंत्रकों
  • एप्लिकेशन / सहायक
  • एप्लिकेशन / आस्तियों / javascripts /
  • एप्लिकेशन / आस्तियों / स्टाइलशीट /

मॉडल के लिए, नोबिता का जवाब बहुत अच्छा है






Links