ruby on rails मॉडल पहले से मौजूद होने पर 'रेल उत्पन्न मचान' कैसे चलाएं?




ruby-on-rails ruby-on-rails-3 (5)

रेल 5 में , आप अभी भी चल सकते हैं

$rails generate scaffold movie --skip

सभी गायब मचान फाइलें बनाने के लिए या

rails generate scaffold_controller Movie

नियंत्रक बनाने और केवल देखने के लिए।

एक बेहतर स्पष्टीकरण के लिए रेल मचान की जांच करें

मैं रेल के लिए नया हूं इसलिए मेरी वर्तमान परियोजना एक अजीब स्थिति में है।

मेरे द्वारा जेनरेट की गई पहली चीज़ों में से एक "मूवी" मॉडल था। मैंने फिर इसे अधिक विस्तार से परिभाषित करना शुरू किया, कुछ तरीकों को जोड़ा, इत्यादि।

अब मुझे एहसास हुआ है कि मुझे इसे rails generate scaffold साथ उत्पन्न करना चाहिए था जो राउटिंग, विचार, नियंत्रक इत्यादि जैसी चीज़ों को हुक करने के rails generate scaffold

मैंने मचान उत्पन्न करने की कोशिश की लेकिन मुझे एक त्रुटि मिली कि एक ही नाम के साथ एक माइग्रेशन फ़ाइल पहले से मौजूद है।

मेरे "मूवी" के लिए अब मचान बनाने का सबसे अच्छा तरीका क्या है? (रेल 3 का उपयोग कर)


मौजूदा डेटाबेस के साथ रेल ऐप शुरू करने वालों के लिए एक मचान स्क्रिप्ट उत्पन्न करने के लिए schema_to_scaffold नामक एक शांत मणि है। यह आउटपुट करता है:

rails g scaffold users fname:string lname:string bdate:date email:string encrypted_password:string

आपकी schema.rb से आपका नाम बदलकर schema.rb. इसे जाँचे


टीएल; डीआर : 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 कर सकते हैं :)

मैं जेनरेटर के अंदर विकल्पों को देखने में कुछ समय बिताने की सलाह देता हूं। वे कुछ ऐसा हैं जो मुझे नहीं लगता है कि पुस्तकों में बहुत अच्छी तरह से दस्तावेज हैं और ऐसे में, लेकिन वे बहुत आसान हैं।


आप 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

Lee Jarvis द्वारा महान जवाब, यह केवल आदेश है; हमारे पास पहले से ही एक मौजूदा मॉडल है जिसे उपयोगकर्ता कहा जाता है:

rails g scaffold_controller User




ruby-on-rails-3