एक मचान पैदा करने और रेल में मॉडल उत्पन्न करने के बीच क्या अंतर है? या तो करने के फायदे/नुकसान क्या हैं?रेल में मचान और मॉडल के बीच अंतर
उत्तर
जब आप एक मॉडल तैयार करते हैं तो एक मॉडल के रूप में अच्छी तरह से कुछ संबंधित घटकों मिलता है। इस तरह के विषयों समझाने का मेरी पसंदीदा तरीकों में से एक वास्तव में इसे आज़माने या दूसरों यह कोशिश करने के लिए प्रोत्साहित करने के लिए है, इसलिए यदि मैं एक रेल परियोजना के भीतर आदेश rails generate model Foo name:string description:text
दर्ज करने के लिए थे, मैं मिलेगा:
invoke active_record
create db/migrate/20130719012107_create_foos.rb
create app/models/foo.rb
invoke test_unit
create test/unit/foo_test.rb
create test/fixtures/foos.yml
पहले लाइन Active Record
को आमंत्रित करती है, जो मूल रूप से आपके मॉडल को आपके डेटाबेस से जोड़ती है। अगली पंक्ति माइग्रेशन फ़ाइल कहलाती है। माइग्रेशन फ़ाइलों में आपके डेटाबेस को बदलने के लिए निर्देश होते हैं। यह पहली माइग्रेशन फ़ाइल 'foos' नामक डेटाबेस तालिका बनाता है और यह "नाम" और "विवरण" के लिए कॉलम भी बनाएगी।
अगली पंक्ति मॉडल ही बनाता है। मॉडल मूल रूप से एक रूबी वर्ग है जो सक्रिय रिकॉर्ड से विरासत में मिलता है। इसका अर्थ यह है कि सक्रिय रिकॉर्ड में किसी भी तरीके को कॉल किया जा सकता है जिसे अब आपके मॉडल में बुलाया जा सकता है। अंतिम तीन पंक्तियां मूल रूप से आपके मॉडल के लिए संबंधित परीक्षण फाइलें बनाती हैं। यदि आप आरएसपीईसी का उपयोग कर रहे थे, तो इसके बजाय spec फाइलें बनाई जाएंगी।
यदि आपका रेल आवेदन केवल मॉडल निहित, आपको लगता है कि एक पृष्ठ पर जानकारी प्रदर्शित करता है देखने के किसी भी प्रकार नहीं है, और न ही आप निर्देश है कि सूचना के प्रवाह को नियंत्रित करना होगा। आपके विकल्प कंट्रोलर भी उत्पन्न करेंगे (जो बदले में आपके विचार उत्पन्न करता है) या एक मचान उत्पन्न करने के लिए, जो आपके मॉडल, विचार, नियंत्रक, और आपके मार्गों को लिखता है। आरबी फ़ाइल। अगर मैं rails generate scaffold foo
भाग गया मैं मिलेगा:
invoke active_record
create db/migrate/20130719013307_create_foos.rb
create app/models/foo.rb
invoke test_unit
create test/unit/foo_test.rb
create test/fixtures/foos.yml
invoke resource_route
route resources :foos
invoke scaffold_controller
create app/controllers/foos_controller.rb
invoke erb
create app/views/foos
create app/views/foos/index.html.erb
create app/views/foos/edit.html.erb
create app/views/foos/show.html.erb
create app/views/foos/new.html.erb
create app/views/foos/_form.html.erb
invoke test_unit
create test/functional/foos_controller_test.rb
invoke helper
create app/helpers/foos_helper.rb
invoke test_unit
create test/unit/helpers/foos_helper_test.rb
invoke assets
invoke coffee
create app/assets/javascripts/foos.js.coffee
invoke scss
create app/assets/stylesheets/foos.css.scss
invoke scss
identical app/assets/stylesheets/scaffolds.css.scss
आपके प्रश्न का उत्तर करने के लिए, पाड़ के लाभ यह है कि यह त्वरित, आसान है, और सब कुछ आप के लिए पहले से कॉन्फ़िगर किया गया है। हालांकि, मचानों के स्वतंत्र रूप से मॉडलों को उत्पन्न करने के फायदे (और फिर बदले में नियंत्रकों/विचारों को उत्पन्न करने और जहां आपके मार्गों को लिखना। आरबी फ़ाइल स्वयं) यह है कि आपके ऐप पर बहुत अधिक नियंत्रण है और यह कैसा दिखता है और कार्य करता है, आप इससे बचते हैं अनावश्यक कोड, आप व्यवहार-प्रेरित विकास या टेस्ट संचालित विकास, और शायद अन्य चीजें जो किसी और को जोड़ना चाहते हैं, को नियोजित कर सकते हैं।
मेरी सलाह के अंतिम बिट है: रेल बहुत उपयोगकर्ता के अनुकूल है, इसलिए अपने आप को प्रयोग करने का प्रयास करें। तुम्हें पता है, एक इसी destroy
आदेश के साथ किसी भी generate
आदेश पूर्ववत कर सकते हैं तो उदाहरण rails destroy scaffold Foo
के लिए सभी rails generate Scaffold Foo name:string description:string
द्वारा उत्पन्न फ़ाइलों को हटाने के हैं, तो आप के बारे में चिंता करने की पूरी तरह प्रयोग करके एक परियोजना को खिलवाड़ नहीं है।
एक पाड़ जनरेट कर रहा है भी शामिल है एक मॉडल पैदा करने पर भी
- RESTful मार्गों
- मॉडल की RESTful हैंडलिंग
- विचारों नियंत्रक द्वारा आवश्यक
- परीक्षण स्टब्स के लिए सभी कार्यों के साथ एक नियंत्रक उत्पन्न करता है
मचान नई रेल उपयोगकर्ताओं के लिए एक अच्छी शुरुआत है।
नए उपयोगकर्ताओं को शायद मचान द्वारा भ्रमित किया जाएगा क्योंकि वे समझ नहीं पाएंगे कि सभी घटक एक साथ कैसे काम करते हैं। मचान शायद अनुभवी उपयोगकर्ताओं के लिए सबसे अच्छा है जो काम के लिए शॉर्टकट चाहते हैं, वे आम तौर पर दोहराना चाहते हैं।
$rails generate scaffold <name>
आप स्वत: उत्पन्न कर सकते हैं एक पूर्ण CRUD (बनाएँ, पढ़ने, अपडेट, हटाएँ) वेब इंटरफेस के साथ नियंत्रक, मॉडल, और दृश्यों का उपयोग करने के लिए तैयार
। मॉडलों को उत्पन्न करने से यह आसान और आसान तरीका है, लेकिन जो कोड उत्पन्न करता है वह आपके आवेदन के लिए एकदम सही नहीं है।
ए scaffold सरल उदाहरणों, त्वरित नकली या परीक्षण की बात करते समय उपयोग करने के लिए उत्कृष्ट है।
आप अपना मन बदल और पहले से ही मॉडल पैदा करने के बाद पाड़ उपयोग करने का निर्णय, तो आप हमेशा चला सकते हैं
$rails generate scaffold <name>
यह सब गायब फ़ाइल पैदा करेगा। या यदि आप पाड़ उपयोग करने के साथ OT खुश हैं, तो आप हमेशा यह निम्नलिखित तरीके से निकाल सकते हैं:
उत्पन्न पाड़:
$rails generate scaffold Story
आप अपनी फ़ाइलों को चले गए हैं, तो प्रदर्शन एक रोलबैक:
$rake db:rollback
नष्ट या पूर्ववत पाड़: $ रेल पाड़ कहानी को नष्ट
- 1. डिफ़ॉल्ट मचान और निफ्टी के बीच क्या अंतर है: मचान?
- 2. मॉडल के बीच अंतर और मॉडल देखें
- 3. रेल 3 रिलेशनल मॉडल की मचान
- 4. मॉडल एट्रिब्यूट और कमांडनाम के बीच अंतर
- 5. रेल में has_one और belong_to के बीच अंतर?
- 6. प्रिये और प्राइ-रेल के बीच अंतर
- 7. एनजी-मॉडल और एनजी-मॉडल-तत्काल के बीच अंतर AngularJS
- 8. yi में ActiveRecord और मॉडल() के बीच अंतर?
- 9. के बीच अंतर: मॉडल और @model form_for में?
- 10. रेल मचान बहुवचन "कैफे"
- 11. रेल: मचान द्वारा उत्पन्न मॉडल को संशोधित करना
- 12. रेल: ActiveRecord में बनाने और नए तरीकों के बीच अंतर?
- 13. रेल में in_groups और in_groups_of के बीच क्या अंतर है?
- 14. रेल 4.1 और 4.2 के बीच ActiveRecord Setter में अंतर?
- 15. रेल माइग्रेशन में self.up और up के बीच अंतर
- 16. रेल मार्ग में संसाधन और संसाधनों के बीच अंतर?
- 17. रेल में सहायक फाइलों और lib फ़ाइलों के बीच अंतर
- 18. पिलों में मचान
- 19. RoR में मॉडल और मचान को कैसे हटाएं?
- 20. @ मॉडल और @ व्यूडाटा.मोडेल के बीच क्या अंतर है?
- 21. केकफ़्पी - मॉडल और व्यवहार के बीच क्या अंतर है?
- 22. रिग्रेशन पेड़ और मॉडल पेड़ के बीच अंतर
- 23. सिनात्रा और रेल के बीच मॉडल कोड साझा करना
- 24. नए + के बीच रेल में मतभेद और
- 25. एनजी-मॉडल और कोणीय अभिव्यक्ति के बीच अंतर - {{}}
- 26. "। +" और "। +?" के बीच अंतर
- 27. सूचना मॉडल और एक Ontology के बीच क्या अंतर है?
- 28. रेल पर रूबी में समग्र इकाई मचान
- 29. संबंधों के बीच और कहां के बीच अंतर
- 30. डोमेन मॉडल, वैचारिक मॉडल और व्यावसायिक मॉडल आदि के बीच अंतर
मैं भी प्रोत्साहित करना चाहिए इन विषयों पर आप किसी भी आधिकारिक रेल गाइड को पढ़ने के लिए उम्र ... मैंने सक्रिय रिकॉर्ड और माइग्रेशन जैसी चीजों का एक सुंदर उच्च स्तरीय अवलोकन प्रदान किया, लेकिन उम्मीद है कि आपके प्रश्न का उत्तर देने के लिए पर्याप्त एक है! – aceofbassgreg
अद्भुत उत्तर आपको बहुत धन्यवाद, आपने मुझे बहुत मदद की – SsouLlesS
मेरे पास एक ही सवाल था। महान स्पष्टीकरण। धन्यवाद। – whitehat