มีวิธีใดบ้างที่จะ 'ยกเลิก' ผลของคำสั่งฐานใน Rails?
มีวิธีใดบ้างที่จะ 'ยกเลิก' ผลของคำสั่งฐานใน Rails?
คำตอบ:
ก่อนอื่นถ้าคุณเรียกใช้การย้ายข้อมูลที่สร้างโดยscaffold
คำสั่งคุณต้องทำการย้อนกลับก่อน
rake db:rollback
คุณสามารถสร้างนั่งร้านโดยใช้:
rails generate scaffold MyFoo
(หรือคล้ายกัน) และคุณสามารถทำลาย / เลิกทำโดยใช้
rails destroy scaffold MyFoo
ซึ่งจะลบไฟล์ทั้งหมดที่สร้างขึ้นgenerate
แต่ไม่ทำการเปลี่ยนแปลงเพิ่มเติมใด ๆ ที่คุณทำด้วยตนเอง
rake db:rollback
ก่อนที่จะทำลายโครงของคุณ สิ่งนี้จะทำลาย / ปล่อยตารางหากไม่มีการย้ายข้อมูลอื่นยกเว้นการย้ายข้อมูลของนั่งร้านมาก่อน
git status
และ / หรือgit diff
เพื่อดูว่าคำสั่ง destroy ทำอะไรผิดพลาดหรือไม่
Rishav Rastogi นั้นถูกต้องและด้วย Rails 3.0 หรือสูงกว่า:
รางสร้างนั่งร้าน ...
รางทำลายนั่งร้าน ...
rake db:rollback
ก่อนหน้านี้rails destroy scaffold
หรือหากไม่ใช่ตัวสุดท้ายที่คุณทำการเสาะหาdb:migrate:down VERSION=20080906120000
คุณสามารถค้นหาหมายเลขก่อนชื่อใน db / migrate ได้
คุณสามารถยกเลิกสิ่งที่คุณทำกับ
rails generate xxx
โดย
rails destroy xxx
ตัวอย่างเช่นนี้ใช้กับเครื่องกำเนิดไฟฟ้าเพื่อการโยกย้าย, นั่งร้าน, รุ่น ... ฯลฯ
หากคุณเพียงต้องการที่จะเห็นไฟล์ที่เครื่องกำเนิดไฟฟ้าจะสร้างคุณสามารถผ่านเครื่องกำเนิด - แปลตัวเลือกหรือ -p
วิธีที่ดีที่สุดคือ:
destroy rake db: rake db:rollback
สำหรับนั่งร้าน:
rails destroy scaffold Name_of_script
rails d scaffold <scaffoldname>
นอกจากนี้ตรวจสอบให้แน่ใจว่าคุณเลิกทำการโยกย้ายที่คุณทำโดยย้อนกลับหรือไปสู่เวอร์ชันเฉพาะ
เป็นครั้งแรกที่คุณสามารถตรวจสอบการโยกย้ายฐานข้อมูลของคุณถ้าคุณสร้างนั่งร้าน คุณต้องทำลายพวกเขาเพื่อล้างฐานข้อมูลของคุณ
rake db:rollback
แล้วก็
rails d scaffold
ในการสร้างนั่งร้าน:
rails generate scaffold xyz
ในการเปลี่ยนกลับนั่งร้าน:
rails destroy scaffold xyz
สำหรับการสร้างนั่งร้านในราง -
rails generate scaffold MODEL_GOES_HERE
สำหรับการเลิกทำนั่งร้านในราง -
rails destroy scaffold MODEL_GOES_HERE
rails g
rails d
คุณต้องย้อนกลับการย้ายข้อมูลด้วยหลังจากทำลายโครงสร้างด้วย
rails destroy scaffold 'scaffoldname'
rake db:rollback
ดังนั้นกระบวนการที่คุณควรทำตามเพื่อเลิกทำการนั่งร้านในราง 4. เรียกใช้คำสั่งดังต่อไปนี้:
rails d scaffold FooBar
rake db:rollback
หาก you_had_run_ rake db:migrate
หลังจากสร้างกรอบด้านบนแล้วแค่นั้นแหละ!
ไชโย!
แนะนำการย้อนกลับก่อนอื่นให้พิมพ์เทอร์มินัลของคุณ
rake db:rollback
เพิ่มโครงสร้างการทำลายล้าง ('d' ย่อมาจาก 'destroy')
rails d scaffold name_of_scaffold
เพลิดเพลินไปกับรหัสของคุณ
ใช้สิ่งนี้
rails d scaffold MODEL_NAME
rake db:rollback
ก่อนอื่นคุณจะต้องทำการrake db: rollbackเพื่อทำลายตาราง
ถ้าคุณได้รันrake db: migrateแล้วจากนั้นคุณสามารถเรียกใช้
ราง d นั่งร้านรุ่น
คุณต้องย้อนกลับการโยกย้ายครั้งแรกโดยทำ rake db: rollback ถ้ามีแล้วทำลายโครงโดย
rails d scaffold foo
ใช่scaffold
ตัวมันเองและทุกสิ่งที่รวมเข้าด้วยกัน
destroy
คำสั่งอยู่ตรงข้ามของgenerate
และจะยกเลิกการอย่างใดอย่างหนึ่ง เพียงผ่านชื่อแบบเดียวกับที่ทำกับgenerate
มันและมันจะถูกขัดออกจากโครงการของคุณ:
rails generate scaffold posts title:string content:text
rails destroy scaffold posts title:string content:text
ในการสร้างนั่งร้าน:
rails generate scaffold abc
ในการเปลี่ยนกลับนั่งร้านนี้:
rails destroy scaffold abc
หากคุณเรียกใช้การย้ายข้อมูลเพียงแค่ย้อนกลับ
rake db:rollback STEP=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
ราง [ตัวเลือก] scaffold scaffold_name
ตัวเลือก
g generate
d destroy
ถ้าคุณทำ
rails g scaffold myFoo
จากนั้นย้อนกลับโดยใช้
rails d scaffold MyFoo
เมื่อเราสร้างนั่งร้านไฟล์ต่อไปนี้จะถูกสร้างขึ้น:
คำสั่ง: 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
คำสั่งนี้จะลบไฟล์ทั้งหมดที่สร้างขึ้นโดยนั่งร้านในโครงการของคุณ
เมื่อใดก็ตามที่คุณเรียกใช้rails g
คุณสามารถย้อนกลับได้โดยเรียกใช้rails d
(ทำลาย) เพื่อลบสิ่งที่คุณสร้างขึ้น หากคุณได้วิ่งแล้วrake db:migrate
คุณจะต้องวิ่งrake db:rollback
ก่อนทำลาย :)
กรณีที่ 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เพื่อสร้างเป็นทางลัด
rails g scaffold MyFoo
สำหรับการสร้างและ
rails d scaffold MyFoo
สำหรับการลบ