सभी RESTful कार्यों के साथ एक नियंत्रक उत्पन्न करें


86

मैं सभी कठोर कार्यों के साथ एक नियंत्रक उत्पन्न करने की कोशिश कर रहा हूं। मैंने विकीबूक - रूबी ऑन रेल्स में पढ़ा था कि मुझे जनरेटर नाम के साथ जनरेटर को कॉल करने की ज़रूरत थी और मुझे बस यही मिलेगा। इसलिए, मैं भागा script/generate rspec_controller Propertiesलेकिन एक खाली नियंत्रक मिला।

कोई अन्य सुझावों की बहुत सराहना की जाएगी।


1
thenduks, अगर मुझे आपके जैसा अनुभव हुआ, जो सच होगा, लेकिन मुझे अपने सिर के ऊपर से 7 बाकी क्रियाओं का भी पता नहीं है, इसलिए मुझे आइटम को Google करना होगा और फिर पृष्ठ और मेरे बीच में आगे और पीछे स्विच करना होगा एप्लिकेशन को प्रत्येक में प्रवेश करने के लिए। एक बार जब मैं उन्हें जानता हूं, तो मैं मानता हूं कि आपका समाधान आसान है
बारब

जवाबों:


143

मैं इसे करने के एक स्वचालित तरीके के बारे में नहीं जानता, लेकिन अगर आप ऐसा करते हैं:

script/generate controller your_model_name_in_plural new create update edit destroy index show

वे सभी आपके लिए बनाए जाएंगे

रेल के लिए अद्यतन 4

rails g scaffold_controller Property

7
बहुत बढ़िया जवाब। विशेषज्ञ बाकी की अनदेखी कर सकते हैं। नोट करने के लिए नोट - यदि आप अपने नियंत्रक का नाम लेते हैं प्रॉपर्टी कंट्रोलर जैसा कि मुझे गलत समझा गया है :) आपको प्रॉपर्टी कंट्रोलर नियंत्रक मिल जाएगा :)
'23

2
मेरा उत्तर बिल्कुल वही काम करता है - सिवाय इसके कि आपको डिफ़ॉल्ट 7 क्रियाओं को निर्दिष्ट करने की आवश्यकता नहीं है।
कोनंग

4
बस एक नोट ... यह केवल मूल सीआरयूडी कार्यों के लिए नामित विधियों के साथ एक नियंत्रक उत्पन्न करता है। मार्ग route get "mycontroller/create"
रेस्टफुल

मैं इस बात से सहमत हूं कि यह उत्तर सामान्य कस्टम क्रियाओं के लिए अधिक अनुकूल है, यह वास्तव में रेस्टफुल कन्वेंशन का सम्मान नहीं करता है जो वांछित है।
प्रसून

इस उत्तर रेल 4. के लिए 4. KONUNG के देखें जवाब रेल के लिए पुरानी है
toobulkeh

97

रेल 3 में भी है rails generate scaffold_controller ...। अधिक जानकारी यहाँ


1
मैं इस विधि को पसंद करता हूं क्योंकि यह Restful मार्गों को उत्पन्न करता है। उपयोग rails g controller Foos createकरने से एक मार्ग उत्पन्न होगा get '/create'जिसके लिए RESTful बिल्कुल नहीं है।
rthbound

37

EDIT (कुछ टिप्पणियों के कारण) : मूल प्रश्न 2010 में था - इसलिए इसका उत्तर रील्स 4 के लिए नहीं है, बल्कि रेल 2 के लिए है !!

मचान का उपयोग करके देखें।

script/generate scaffold controller Properties

रूबी ऑन रेल्स पर आधिकारिक डॉक्स की धारा

मुझे यकीन है कि आप अधिक जानकारी पा सकते हैं यदि आप रेल स्कैफोल्डिंग पर एक Google खोज करते हैं। उम्मीद है की वो मदद करदे।

संपादित करें: नाखूनों के लिए 4

rails g scaffold_controller Property


क्या आप स्क्रिप्ट / rspec_scaffold नियंत्रक गुण उत्पन्न कर सकते हैं?
बारब

हाँ तुम कर सकते हो। यहाँ विस्तृत जानकारी / ट्यूटोरियल है: blog.davidchelimsky.net/2007/05/14/…
konung

मुझे संदेह है कि यह उत्तर रेल के हाल के संस्करणों के लिए पुराना है। यह बस "नियंत्रक" नामक वस्तु / मॉडल के लिए एक संपूर्ण पाड़ बनाएगा
prusswan

4
हाँ, जो संस्करण 2.something के लिए 2010 में लिखा गया था जो कि प्रश्न से निम्नानुसार है। अब (रेल 4) यह इस तरह दिखाई देगा: रेल g scaffold_controller संपत्ति (scaffold_controller मचान आह्वान करेगा और आपको मॉडल नाम (एकवचन) प्रदान करने की आवश्यकता है, लेकिन नहीं करना है)
konung

2
मैं सत्यापित कर सकता हूं कि rails g scaffold_controller Propertyरेल 3.2 में भी काम करता है। यह बिना मॉडल के सभी 7 डिफ़ॉल्ट रेस्टफुल क्रियाओं और उनके संबंधित विचारों के साथ एक PropertiesController का निर्माण करेगा।
mkralla11

15

रेल 4/5 में निम्नलिखित कमांड मेरे लिए ट्रिक करती है।

rails g scaffold_controller Property --skip-template-engine

इसने नियंत्रक क्रियाओं को उत्पन्न किया लेकिन दृश्य को नहीं।


9

रेलगाड़ी ५.१

प्रस्थान बिंदू:

आप एक नियंत्रक के बिना एक मॉडल, और न ही विचारों बनाया है (उदाहरण के माध्यम से: rails generate model category)

उद्देश्य:

इसे पूर्ण RESTful संसाधन में अपग्रेड करें

कमान:

rails generate scaffold_controller category

यह एक स्कैफोल्ड कंट्रोलर, इसके सात रेस्टफुल एक्शन और संबंधित विचारों को स्टब्स करता है। (नोट: आप या तो मॉडल का नाम CamelCased या under_scored पास कर सकते हैं।)

आउटपुट:

varus@septimusSrv16DEV4:~/railsapps/dblirish$ rails generate scaffold_controller category
Running via Spring preloader in process 45681
      create  app/controllers/categories_controller.rb
      invoke  erb
      create    app/views/categories
      create    app/views/categories/index.html.erb
      create    app/views/categories/edit.html.erb
      create    app/views/categories/show.html.erb
      create    app/views/categories/new.html.erb
      create    app/views/categories/_form.html.erb
      invoke  test_unit
      create    test/controllers/categories_controller_test.rb
      invoke  helper
      create    app/helpers/categories_helper.rb
      invoke    test_unit
      invoke  jbuilder
      create    app/views/categories/index.json.jbuilder
      create    app/views/categories/show.json.jbuilder
      create    app/views/categories/_category.json.jbuilder

7

आप मचान की तलाश कर रहे हैं।

प्रयत्न:

script/generate scaffold Property

यह आपको एक नियंत्रक, एक मॉडल, एक माइग्रेशन और संबंधित परीक्षण देगा। आप विकल्प के साथ माइग्रेशन को छोड़ सकते हैं --skip-migration। यदि आप दूसरों को नहीं चाहते हैं, तो आपको उन्हें स्वयं हटाना होगा। मौजूदा फ़ाइलों को अधिलेखित करने के बारे में चिंता न करें, यह तब तक नहीं होगा जब तक आप उपयोग नहीं करते हैं --force

जैसा कि klew टिप्पणियों में बताता है, यह आपके लिए विधि निकायों को भी परिभाषित करता है , न कि केवल नामों को। यह आपके REST कंट्रोलर के लिए शुरुआती बिंदु के रूप में उपयोग करने के लिए बहुत उपयोगी है।


@ बर्ब, मुझे लगता है कि मचान आपके लिए बेहतर होगा क्योंकि यह न केवल सभी कार्यों की घोषणा करता है बल्कि यह उन्हें परिभाषित भी करता है। कम से कम एक बार उन्हें बनाना और उदाहरण के रूप में उन्हें बनाना अच्छा है।
klew

6

रेल 4 में rails g controller apps new create update edit destroy show index

या rails generate controller apps new create update edit destroy show indexयदि आप पूरा शब्द लिखना चाहते हैं :)।


और एक लंबे समय तक नाम के साथ नियंत्रक (line_items की तरह) के लिए, रेल जी नियंत्रक पंक्ति आइटम
Tommyixi

1
आप बस rails g scaffold_controller appsरेल्स 4 में उपयोग कर सकते हैं
रेवडोस

2

स्क्रिप्ट / उत्पन्न rspec_scaffold संपत्ति


और हाँ, मुझे पता है कि आपने पहले ही इस पर एक उत्तर स्वीकार कर लिया है, लेकिन मुझे लगता है कि इस समाधान से कुछ लोगों को मदद मिल सकती है जो इस पोस्ट को भी पढ़ते हैं .... उपरोक्त समाधान एक मॉडल आदि बनाएगा, जिसे आप बस हटा सकते हैं यदि आपको जरूरत नहीं है
स्टीफनमुर्डोक

0

कोई तरीका नहीं है (कि मुझे पता है? कि प्रलेखित है?) मचान के अलावा एक नियंत्रक को बाहर निकालने के लिए। लेकिन आप कर सकते हैं:

script/generate controller WhateverController new create edit update destroy show

महान जवाब, मुझे लगता है कि आप एक कार्रवाई याद कर रहे हैं क्या 7 क्रियाएं नहीं हैं?
बारब

0

एक समाधान एक स्क्रिप्ट बनाने के लिए है जो एक पैरामीटर, नियंत्रक नाम को स्वीकार करता है, और स्क्रिप्ट को आपके लिए संपूर्ण कमांड टाइप करने देता है।


  1. एक नई फ़ाइल बनाएँ, कहते हैं, railsgcontroller
  2. इसे निष्पादन योग्य बनाएं और इसे पथ पर सहेजें
  3. इसे ऐसे चलाएं: $ railsgcontroller लेख

die () {
    echo "Please supply new rails controller name to generate."
    echo >&2 "$@"
    exit 1
}

[ "$#" -eq 1 ] || die "1 argument required, $# provided"

rails g controller "$1" new create update edit destroy show index
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.