Ruby on Rails
अपग्रेडिंग रेल्स
खोज…
रेल 4.2 से रेलगाड़ी 5.0 तक उन्नयन
नोट: अपने रेल एप्लिकेशन को अपग्रेड करने से पहले, अपने कोड को एक संस्करण नियंत्रण प्रणाली, जैसे कि Git, पर हमेशा सहेजना सुनिश्चित करें।
रेल 4.2 से रेल 5.0 पर अपग्रेड करने के लिए, आपको रूबी 2.2.2 या नए का उपयोग करना चाहिए। यदि आवश्यक हो तो अपने रूबी संस्करण को अपग्रेड करने के बाद, अपने Gemfile पर जाएं और लाइन बदलें:
gem 'rails', '4.2.X'
सेवा:
gem 'rails', '~> 5.0.0'
और कमांड लाइन रन पर:
$ bundle update
अब कमांड का उपयोग करके अपडेट कार्य चलाएं:
$ rake rails:update
यह आपको कॉन्फ़िगरेशन फ़ाइलों को अपडेट करने में मदद करेगा। आपको फ़ाइलों को अधिलेखित करने के लिए प्रेरित किया जाएगा और आपके पास इनपुट के लिए कई विकल्प हैं:
- वाई - हाँ, अधिलेखित करें
- n - नहीं, अधिलेखित न करें
- a - सभी, इस और सभी अन्य को अधिलेखित करें
- क्ष - छोड़ो, गर्भपात करो
- डी - अंतर, पुराने और नए के बीच के अंतर को दिखाएं
- ज - मदद
आमतौर पर, आपको यह सुनिश्चित करने के लिए पुरानी और नई फ़ाइलों के बीच अंतर की जांच करनी चाहिए कि आपको कोई अवांछित परिवर्तन नहीं मिल रहे हैं।
ActiveRecord::Base
बजाय, 5.0 ActiveRecord
मॉडल ApplicationRecord
से प्राप्त होते हैं। ApplicationRecord
सभी मॉडलों के लिए सुपरक्लास है, इसी तरह से ApplicationController
नियंत्रकों के लिए सुपरक्लास है। इस नए तरीके के लिए जिसमें मॉडल को संभाला जाता है, आपको अपने app/models/
फ़ोल्डर में एक फ़ाइल बनाना होगा जिसे application_record.rb
कहा जाता application_record.rb
और फिर उस फ़ाइल की सामग्री को संपादित करें:
class ApplicationRecord < ActiveRecord::Base
self.abstract_class = true
end
रेल 5.0 भी कॉलबैक को थोड़ा अलग करता है। कॉलबैक जो false
रिटर्न false
, कॉलबैक श्रृंखला को रोक नहीं पाएंगे, जिसका अर्थ है कि कॉलबैक अभी भी चलेगा, रेल 4.2 के विपरीत। जब आप अपग्रेड करते हैं, तो रेल 4.2 व्यवहार रहेगा, हालांकि आप रेल 5.0 व्यवहार को जोड़कर स्विच कर सकते हैं:
ActiveSupport.halt_callback_chains_on_return_false = false
config/application.rb
फ़ाइल में। आप स्पष्ट रूप से throw(:abort)
कॉल throw(:abort)
द्वारा कॉलबैक श्रृंखला को रोक सकते हैं।
रेल 5.0 में, ActiveJob
से प्राप्त कर लेंगे ApplicationJob
बजाय, ActiveJob::Base
रेल 4.2 में की तरह। रेल 5.0 में अपग्रेड करने के लिए app/jobs/
फोल्डर में application_job.rb
नामक फाइल बनाएं। उस फ़ाइल की सामग्री को संपादित करें:
class ApplicationJob < ActiveJob::Base
end
उसके बाद, आपको ActiveJob::Base
बजाय ApplicationJob
से विरासत में अपनी सभी नौकरियों को बदलना होगा।
रेल 5.0 के अन्य सबसे बड़े परिवर्तनों में से किसी को कोड परिवर्तन की आवश्यकता नहीं है, लेकिन आप अपने रेल एप्लिकेशन के साथ कमांड लाइन का उपयोग करने के तरीके को बदल देंगे। आप कार्यों और परीक्षणों को चलाने के लिए bin/rails
, या बस rails
का उपयोग कर पाएंगे। उदाहरण के लिए, $ rake db:migrate
का उपयोग करने के बजाय, अब आप $ rails db:migrate
कर सकते हैं। यदि आप $ bin/rails
चलाते हैं, तो आप सभी उपलब्ध कमांड देख सकते हैं। ध्यान दें कि कई कार्य जो अब bin/rails
साथ चलाए जा सकते हैं वे अभी भी rake
का उपयोग करके काम करते हैं।