เลิกทำนั่งร้านใน Rails


493

มีวิธีใดบ้างที่จะ 'ยกเลิก' ผลของคำสั่งฐานใน Rails?


4
ทางรถไฟทำลาย xxx นั่งร้าน
Robin Garg

1
ใน Rails 5: สร้าง scaffold ด้วย: $ rails สร้าง scaffold <name> หากคุณย้ายข้อมูลไฟล์ของคุณดำเนินการย้อนกลับ: $ DB ทำลายหรือเลิกทำการนั่งร้านด้วย: $ rails ทำลายนั่งร้าน <name> คุณสามารถอ่านเพิ่มเติมเกี่ยวกับเรื่องนี้ได้ที่
Nesha Zoric

คำตอบ:


777

ก่อนอื่นถ้าคุณเรียกใช้การย้ายข้อมูลที่สร้างโดยscaffoldคำสั่งคุณต้องทำการย้อนกลับก่อน

rake db:rollback

คุณสามารถสร้างนั่งร้านโดยใช้:

rails generate scaffold MyFoo 

(หรือคล้ายกัน) และคุณสามารถทำลาย / เลิกทำโดยใช้

rails destroy scaffold MyFoo

ซึ่งจะลบไฟล์ทั้งหมดที่สร้างขึ้นgenerateแต่ไม่ทำการเปลี่ยนแปลงเพิ่มเติมใด ๆ ที่คุณทำด้วยตนเอง


11
อย่าลืมrake db:rollbackก่อนที่จะทำลายโครงของคุณ สิ่งนี้จะทำลาย / ปล่อยตารางหากไม่มีการย้ายข้อมูลอื่นยกเว้นการย้ายข้อมูลของนั่งร้านมาก่อน
Yakob Ubaidi

3
ในบางกรณียังมีไฟล์ที่เหลือที่ยังไม่ถูกลบออกจากโครง ตรวจสอบการควบคุมเวอร์ชันของคุณเช่นgit statusและ / หรือgit diffเพื่อดูว่าคำสั่ง destroy ทำอะไรผิดพลาดหรือไม่
aaron-coding

1
หากคุณเรียกใช้ rake db: migrate ได้ทำการย้ายระบบอื่น ๆ หลังจากนั้นมันสมเหตุสมผลที่จะสร้างการโยกย้ายเพื่อทำลายตารางก่อนที่จะ "ทำลาย" โครงสร้าง ให้ทำบางอย่างเช่นการโยกย้าย g ของราง DropMyFoos จากนั้นเปิดไฟล์การโยกย้ายและเพิ่มรหัสสำหรับวางตาราง เรียกใช้การโยกย้ายนี้และจากนั้นเรียกใช้การทำลายโครงสร้าง
Vikram Sharma

โปรดทราบว่าจะลบโฟลเดอร์มุมมองสำหรับ my_foo แม้ว่าคุณจะมีไฟล์เพิ่มเติมอยู่ที่นั่นก็ตาม
แอนดรู K

167

Rishav Rastogi นั้นถูกต้องและด้วย Rails 3.0 หรือสูงกว่า:

รางสร้างนั่งร้าน ...
รางทำลายนั่งร้าน ...

8
@femi โต๊ะทำด้วยคราด วิธีที่ดีที่สุดในการลบมันทำงานอยู่rake db:rollbackก่อนหน้านี้rails destroy scaffoldหรือหากไม่ใช่ตัวสุดท้ายที่คุณทำการเสาะหาdb:migrate:down VERSION=20080906120000คุณสามารถค้นหาหมายเลขก่อนชื่อใน db / migrate ได้
Travis Pessetto

40

คุณสามารถยกเลิกสิ่งที่คุณทำกับ

rails generate xxx

โดย

rails destroy xxx

ตัวอย่างเช่นนี้ใช้กับเครื่องกำเนิดไฟฟ้าเพื่อการโยกย้าย, นั่งร้าน, รุ่น ... ฯลฯ


13

หากคุณเพียงต้องการที่จะเห็นไฟล์ที่เครื่องกำเนิดไฟฟ้าจะสร้างคุณสามารถผ่านเครื่องกำเนิด - แปลตัวเลือกหรือ -p


10

วิธีที่ดีที่สุดคือ:

destroy rake db:  rake db:rollback

สำหรับนั่งร้าน:

rails destroy scaffold Name_of_script

8
rails d scaffold <scaffoldname>

นอกจากนี้ตรวจสอบให้แน่ใจว่าคุณเลิกทำการโยกย้ายที่คุณทำโดยย้อนกลับหรือไปสู่เวอร์ชันเฉพาะ


8

เป็นครั้งแรกที่คุณสามารถตรวจสอบการโยกย้ายฐานข้อมูลของคุณถ้าคุณสร้างนั่งร้าน คุณต้องทำลายพวกเขาเพื่อล้างฐานข้อมูลของคุณ

rake db:rollback

แล้วก็

rails d scaffold

4

ในการสร้างนั่งร้าน:

rails generate scaffold xyz

ในการเปลี่ยนกลับนั่งร้าน:

rails destroy scaffold xyz

4

รางทำลายชื่อ

rake db:rollback

1
ย้อนกลับครั้งแรก (ถ้าคุณย้าย) แล้วทำลายโครงสร้าง
gavit

3

สำหรับการสร้างนั่งร้านในราง -

rails generate scaffold MODEL_GOES_HERE

สำหรับการเลิกทำนั่งร้านในราง -

rails destroy scaffold MODEL_GOES_HERE

2
นอกจากนี้ยังมีทางลัดและrails g rails d
สตีฟไคลน์

2

คุณต้องย้อนกลับการย้ายข้อมูลด้วยหลังจากทำลายโครงสร้างด้วย

rails destroy scaffold 'scaffoldname'
rake db:rollback

2

ดังนั้นกระบวนการที่คุณควรทำตามเพื่อเลิกทำการนั่งร้านในราง 4. เรียกใช้คำสั่งดังต่อไปนี้:

  1. rails d scaffold FooBar
  2. rake db:rollbackหาก you_had_run_ rake db:migrateหลังจากสร้างกรอบด้านบนแล้ว

แค่นั้นแหละ!

ไชโย!


2

แนะนำการย้อนกลับก่อนอื่นให้พิมพ์เทอร์มินัลของคุณ

rake db:rollback

เพิ่มโครงสร้างการทำลายล้าง ('d' ย่อมาจาก 'destroy')

rails d scaffold name_of_scaffold

เพลิดเพลินไปกับรหัสของคุณ



1

ก่อนอื่นคุณจะต้องทำการrake db: rollbackเพื่อทำลายตาราง
ถ้าคุณได้รันrake db: migrateแล้วจากนั้นคุณสามารถเรียกใช้

ราง d นั่งร้านรุ่น


1

คุณต้องย้อนกลับการโยกย้ายครั้งแรกโดยทำ rake db: rollback ถ้ามีแล้วทำลายโครงโดย

rails d scaffold foo

1

ใช่scaffoldตัวมันเองและทุกสิ่งที่รวมเข้าด้วยกัน

destroyคำสั่งอยู่ตรงข้ามของgenerateและจะยกเลิกการอย่างใดอย่างหนึ่ง เพียงผ่านชื่อแบบเดียวกับที่ทำกับgenerateมันและมันจะถูกขัดออกจากโครงการของคุณ:

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

1

ในการสร้างนั่งร้าน:

rails generate scaffold abc

ในการเปลี่ยนกลับนั่งร้านนี้:

rails destroy scaffold abc

หากคุณเรียกใช้การย้ายข้อมูลเพียงแค่ย้อนกลับ

rake db:rollback STEP=1

1

ผู้ให้บริการโซลูชันอื่นตาม git

เริ่มโครงการใหม่

rails new project_name
cd project_name

เริ่มต้นคอมไพล์

git init
git commit -m "initial commit"

สร้างนั่งร้าน

rails g scaffold MyScaffold
rake db:migrate

ย้อนกลับนั่งร้าน

rake db:rollback
git reset --hard
git clean -f -d

1

ราง [ตัวเลือก] scaffold scaffold_name

ตัวเลือก

g    generate
d    destroy

ถ้าคุณทำ

rails g  scaffold myFoo

จากนั้นย้อนกลับโดยใช้

rails d scaffold MyFoo

0

เมื่อเราสร้างนั่งร้านไฟล์ต่อไปนี้จะถูกสร้างขึ้น:

คำสั่ง: 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

คำสั่งนี้จะลบไฟล์ทั้งหมดที่สร้างขึ้นโดยนั่งร้านในโครงการของคุณ


0

เมื่อใดก็ตามที่คุณเรียกใช้rails gคุณสามารถย้อนกลับได้โดยเรียกใช้rails d(ทำลาย) เพื่อลบสิ่งที่คุณสร้างขึ้น หากคุณได้วิ่งแล้วrake db:migrateคุณจะต้องวิ่งrake db:rollbackก่อนทำลาย :)


0

กรณีที่ 1:หากคุณรันเฉพาะคำสั่งนี้เพื่อสร้างโครง -

rails generate scaffold MODEL_NAME FIELD_NAME:DATATYPE

Ex - rails generate scaffold User name:string address:text

แต่จนถึงตอนนี้คุณไม่ได้เรียกใช้คำสั่งใด ๆ สำหรับการย้ายข้อมูลเช่น

rake db:migrate

จากนั้นคุณควรจะต้องรันเฉพาะคำสั่งนี้เช่น -

rails destroy scaffold User name:string address:text

กรณีที่ 2:หากคุณใช้งาน (Scaffold และ Migration) โดยใช้คำสั่งด้านล่างเช่น -

rails generate scaffold User name:string address:text

rake db:migrate 

จากนั้นคุณควรจะต้องเรียกใช้คำสั่งการโอนย้ายการย้อนกลับก่อนจากนั้นทำลายโครงสร้างเช่น -

rake db:rollback

rails destroy scaffold User name:string address:text

ดังนั้นในลักษณะนี้เราสามารถยกเลิกการนั่งร้านได้ นอกจากนี้เราสามารถใช้dเพื่อทำลายและgเพื่อสร้างเป็นทางลัด


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.