ruby on rails - रेल में मचान पूर्ववत करें




ruby-on-rails scaffolding (16)

रेल में एक मचान कमांड के प्रभाव को पूर्ववत करने का कोई तरीका है?


रेल [विकल्प] मचान scaffold_name

विकल्प

g    generate
d    destroy

यदि तुम करो

rails g  scaffold myFoo

फिर इसका उपयोग कर वापस उलट दें

rails d scaffold MyFoo

आप जो कुछ भी किया है उसे पूर्ववत कर सकते हैं

rails generate xxx

द्वारा

rails destroy xxx

उदाहरण के लिए यह माइग्रेशन, मचान, मॉडल ... आदि के लिए जेनरेटर लागू करता है


इसे इस्तेमाल करो

rails d scaffold MODEL_NAME

rake db:rollback

ऋषव रास्तोगी सही है, और रेल 3.0 या उससे अधिक के साथ:

rails generate scaffold ...
rails destroy scaffold ...

जब भी आप rails g चलाते हैं, तो आप जो भी उत्पन्न करते हैं उसे हटाने के लिए आप rails d (नष्ट) चलाकर इसे उलट सकते हैं। यदि आप पहले ही rake db:migrate चला चुके हैं rake db:migrate , आपको rake db:rollback चलाने की आवश्यकता होगी rake db:rollback नष्ट करने से पहले rake db:rollback :)


जब हम मचान उत्पन्न करते हैं, तो निम्नलिखित फाइलें बनाई जाएंगी:

कमांड: rails generate scaffold Game

बनाई गई फ़ाइलें:

>       invoke  active_record
>       create    db/migrate/20160905064128_create_games.rb
>       create    app/models/game.rb
>       invoke    test_unit
>       create      test/models/game_test.rb
>       create      test/fixtures/games.yml
>       invoke  resource_route
>        route    resources :games
>       invoke  inherited_resources_controller
>       create    app/controllers/games_controller.rb
>       invoke    erb
>       create      app/views/games
>       create      app/views/games/index.html.erb
>       create      app/views/games/edit.html.erb
>       create      app/views/games/show.html.erb
>       create      app/views/games/new.html.erb
>       create      app/views/games/_form.html.erb
>       invoke    test_unit
>       create      test/controllers/games_controller_test.rb
>       invoke    helper
>       create      app/helpers/games_helper.rb
>       invoke      test_unit
>       create        test/helpers/games_helper_test.rb
>       invoke    jbuilder
>       create      app/views/games/index.json.jbuilder
>       create      app/views/games/show.json.jbuilder
>       invoke  assets
>       invoke    coffee
>       create      app/assets/javascripts/games.js.coffee
>       invoke    scss
>       create      app/assets/stylesheets/games.css.scss
>       invoke  scss
>       create    app/assets/stylesheets/scaffolds.css.scss

यदि हमने इसके बाद माइग्रेशन चलाया है तो हमें पहले माइग्रेशन को रोलबैक करना होगा क्योंकि मचान की हटाने से माइग्रेशन फ़ाइल भी हटा दी जाएगी और हम उस माइग्रेशन को वापस नहीं कर पाएंगे।

अगर हम माइग्रेशन चला चुके हैं:

rake db:rollback

और इसके बाद हम इस कमांड द्वारा सुरक्षित रूप से मचान को हटा सकते हैं।

rails d scaffold Game

यह आदेश आपके प्रोजेक्ट में मचान द्वारा बनाई गई सभी फ़ाइलों को हटा देगा।


पहली बार, यदि आप मचान उत्पन्न करते हैं तो आप डेटाबेस माइग्रेशन की जांच कर सकते हैं। आपको अपने डेटाबेस को साफ करने के लिए उन्हें नष्ट करना होगा

rake db:rollback

फिर

rails d scaffold

मचान उत्पन्न करने के लिए:

rails generate scaffold abc

इस मचान को वापस करने के लिए:

rails destroy scaffold abc

यदि आपने इसके लिए माइग्रेशन चलाया है तो बस रोलबैक

rake db:rollback STEP=1

मचान को नष्ट करने के बाद भी आपको माइग्रेशन वापस रोल करने की जरूरत है

rails destroy scaffold 'scaffoldname'
rake db:rollback

यदि आप केवल जेनरेटर बनाने वाली फाइलें देखना चाहते हैं तो आप जनरेटर --pretend या -p विकल्प पास कर सकते हैं।


रेल में मचान पैदा करने के लिए -

rails generate scaffold MODEL_GOES_HERE

रेल में पूर्ववत मचान के लिए -

rails destroy scaffold MODEL_GOES_HERE

रोलबैक की सिफारिश करें सबसे पहले, अपने टर्मिनल में टाइप करें।

rake db:rollback

विनाश मचान जोड़ें ('डी' 'नष्ट' के लिए खड़ा है)

rails d scaffold name_of_scaffold

अपने कोड का आनंद लें।


सबसे पहले आपको रेक डीबी करना होगा : टेबल को नष्ट करने के लिए रोलबैक
यदि आप पहले से ही रेक डीबी चला चुके हैं : माइग्रेट करें और फिर आप चला सकते हैं

रेल डी मचान मॉडल


हां, scaffold खुद और सभी चीजें जो इसे जोड़ती हैं।

destroy आदेश generate करने के विपरीत है और एक पूर्ववत करेगा। इसे generate साथ ही नाम को उसी तरह से पास करें और इसे आपके प्रोजेक्ट से साफ़ किया जाएगा:

rails generate scaffold posts title:string content:text
rails destroy scaffold posts title:string content:text

सबसे पहले , यदि आप पहले से ही scaffold कमांड द्वारा उत्पन्न माइग्रेशन चला चुके हैं, तो आपको पहले रोलबैक करना होगा।

rake db:rollback

आप मचान बनाकर बना सकते हैं:

rails generate scaffold MyFoo 

(या समान), और आप इसका उपयोग कर / पूर्ववत कर सकते हैं

rails destroy scaffold MyFoo

इससे generate गई सभी फाइलें हटा दी जाएंगी, लेकिन मैन्युअल रूप से आपके द्वारा किए गए कोई भी अतिरिक्त बदलाव नहीं होंगे।


rails d scaffold <scaffoldname>

साथ ही, सुनिश्चित करें कि आपने रोलबैक या किसी विशेष संस्करण में किए गए माइग्रेशन को पूर्ववत कर दिया है।





scaffolding