ruby on rails - मॉडल पहले से मौजूद होने पर 'रेल उत्पन्न मचान' कैसे चलाएं?
ruby-on-rails ruby-on-rails-3 (4)
मैं रेल के लिए नया हूं इसलिए मेरी वर्तमान परियोजना एक अजीब स्थिति में है।
मेरे द्वारा जेनरेट की गई पहली चीज़ों में से एक "मूवी" मॉडल था। मैंने फिर इसे अधिक विस्तार से परिभाषित करना शुरू किया, कुछ तरीकों को जोड़ा, इत्यादि।
अब मुझे एहसास हुआ है कि मुझे इसे rails generate scaffold
साथ उत्पन्न करना चाहिए था जो राउटिंग, विचार, नियंत्रक इत्यादि जैसी चीज़ों को हुक करने के rails generate scaffold
।
मैंने मचान उत्पन्न करने की कोशिश की लेकिन मुझे एक त्रुटि मिली कि एक ही नाम के साथ एक माइग्रेशन फ़ाइल पहले से मौजूद है।
मेरे "मूवी" के लिए अब मचान बनाने का सबसे अच्छा तरीका क्या है? (रेल 3 का उपयोग कर)
आप scaffold_controller
उपयोग कर सकते हैं और मॉडल के attributes
को पास करना याद रखें, या मचान विशेषता के बिना उत्पन्न किए जाएंगे।
rails g scaffold_controller User name email
# or
rails g scaffold_controller User name:string email:string
यह आदेश निम्न फ़ाइलों को उत्पन्न करेगा:
create app/controllers/users_controller.rb
invoke haml
create app/views/users
create app/views/users/index.html.haml
create app/views/users/edit.html.haml
create app/views/users/show.html.haml
create app/views/users/new.html.haml
create app/views/users/_form.html.haml
invoke test_unit
create test/controllers/users_controller_test.rb
invoke helper
create app/helpers/users_helper.rb
invoke test_unit
invoke jbuilder
create app/views/users/index.json.jbuilder
create app/views/users/show.json.jbuilder
इस आदेश को चाल करना चाहिए:
$ rails g scaffold movie --skip
Lee Jarvis
द्वारा महान जवाब, यह केवल आदेश है; हमारे पास पहले से ही एक मौजूदा मॉडल है जिसे उपयोगकर्ता कहा जाता है:
rails g scaffold_controller User
टीएल; डीआर : rails g scaffold_controller <name>
भले ही आपके पास पहले से एक मॉडल है, फिर भी आप rails generate
करने वाले विकल्प का उपयोग करके आवश्यक नियंत्रक और माइग्रेशन फ़ाइलों को उत्पन्न कर सकते हैं। यदि आप rails generate -h
तो आप अपने लिए उपलब्ध सभी विकल्पों को देख सकते हैं।
Rails:
controller
generator
helper
integration_test
mailer
migration
model
observer
performance_test
plugin
resource
scaffold
scaffold_controller
session_migration
stylesheets
यदि आप अपने मॉडल के लिए नियंत्रक मचान उत्पन्न करना चाहते हैं, तो scaffold_controller
देखें। बस स्पष्टता के लिए, यहां विवरण है:
एक मचान नियंत्रक और उसके विचार बाहर स्टब्स। मॉडल नाम, या तो CamelCased या under_scored, और तर्कों के रूप में विचारों की एक सूची पास करें। नियंत्रक का नाम मॉडल नाम के बहुवचन संस्करण के रूप में पुनर्प्राप्त किया जाता है।
मॉड्यूल के भीतर नियंत्रक बनाने के लिए, मॉडल नाम को 'parent_module / controller_name' जैसे पथ के रूप में निर्दिष्ट करें।
यह ऐप / नियंत्रकों में नियंत्रक वर्ग उत्पन्न करता है और सहायक, टेम्पलेट इंजन और परीक्षण ढांचे जेनरेटर का आह्वान करता है।
अपना संसाधन बनाने के लिए, आप resource
जनरेटर का उपयोग करेंगे, और माइग्रेशन बनाने के लिए, आप migration
जेनरेटर भी देख सकते हैं (देखें, इस पागलपन के लिए एक पैटर्न है)। ये संसाधन बनाने के लिए लापता फाइलें बनाने के विकल्प प्रदान करते हैं। वैकल्पिक रूप से आप केवल किसी भी फाइल को छोड़ने के लिए --skip
विकल्प के साथ rails generate scaffold
कर सकते हैं :)
मैं जेनरेटर के अंदर विकल्पों को देखने में कुछ समय बिताने की सलाह देता हूं। वे कुछ ऐसा हैं जो मुझे नहीं लगता है कि पुस्तकों में बहुत अच्छी तरह से दस्तावेज हैं और ऐसे में, लेकिन वे बहुत आसान हैं।