Apakah ada cara untuk 'membatalkan' efek perintah perancah di Rails?
Apakah ada cara untuk 'membatalkan' efek perintah perancah di Rails?
Jawaban:
Pertama , jika Anda sudah menjalankan migrasi yang dihasilkan oleh scaffold
perintah, Anda harus melakukan rollback terlebih dahulu.
rake db:rollback
Anda dapat membuat perancah menggunakan:
rails generate scaffold MyFoo
(atau serupa), dan Anda dapat menghancurkan / membatalkannya menggunakan
rails destroy scaffold MyFoo
Itu akan menghapus semua file yang dibuat oleh generate
, tetapi tidak ada perubahan tambahan yang mungkin Anda buat secara manual.
rake db:rollback
sebelum Anda menghancurkan perancah Anda. Ini akan menghancurkan / menjatuhkan tabel jika tidak ada migrasi lain kecuali migrasi perancah sebelumnya.
git status
dan / atau git diff
, untuk melihat apakah perintah pemusnahan melewatkan sesuatu.
Rishav Rastogi benar, dan dengan rel 3.0 atau lebih tinggi:
rel menghasilkan perancah ...
rel menghancurkan perancah ...
rake db:rollback
sebelum rails destroy scaffold
atau jika itu bukan yang terakhir Anda rake, db:migrate:down VERSION=20080906120000
Anda dapat menemukan nomor sebelum namanya di db / migrate
Anda dapat membatalkan apa pun yang Anda lakukan
rails generate xxx
Oleh
rails destroy xxx
Misalnya ini berlaku generator untuk migrasi, perancah, model ... dll
Jika Anda hanya ingin melihat file yang akan dibuat oleh generator, Anda dapat melewatkan opsi generator --pretend atau -p.
Cara terbaik adalah:
destroy rake db: rake db:rollback
Untuk perancah:
rails destroy scaffold Name_of_script
untuk pertama kalinya, Anda dapat memeriksa migrasi database Anda jika Anda telah menghasilkan perancah. Anda harus menghancurkan mereka untuk membersihkan basis data Anda
rake db:rollback
kemudian
rails d scaffold
Untuk menghasilkan perancah di rel -
rails generate scaffold MODEL_GOES_HERE
Untuk membatalkan perancah di rel -
rails destroy scaffold MODEL_GOES_HERE
rails g
dan rails d
.
Anda perlu mengembalikan migrasi juga setelah menghancurkan perancah juga
rails destroy scaffold 'scaffoldname'
rake db:rollback
Jadi, Proses yang harus Anda ikuti untuk membatalkan perancah di rel 4. Jalankan Perintah seperti di bawah ini:
rails d scaffold FooBar
rake db:rollback
jika you_had_run_ rake db:migrate
setelah membuat perancah di atas?Itu dia!
Bersulang!
Rekomendasikan rollback Pertama, ketik Terminal Anda.
rake db:rollback
Tambahkan perancah perusak ('d' singkatan 'perusak')
rails d scaffold name_of_scaffold
Nikmati kode Anda.
Pertama, Anda harus melakukan rake db: rollback untuk menghancurkan tabel
jika Anda sudah menjalankan rake db: bermigrasi dan kemudian Anda dapat menjalankan
rails d Model scaffold
Ya, scaffold
itu sendiri dan semua hal yang menggabungkannya.
The destroy
perintah adalah kebalikan dari generate
dan akan membatalkan satu. Cukup berikan nama dengan cara yang sama generate
dan akan dihapus dari proyek Anda:
rails generate scaffold posts title:string content:text
rails destroy scaffold posts title:string content:text
Untuk menghasilkan perancah:
rails generate scaffold abc
Untuk mengembalikan perancah ini:
rails destroy scaffold abc
Jika Anda telah menjalankan migrasi untuk itu, kembalikan saja
rake db:rollback STEP=1
Saat kami membuat perancah, file berikut akan dibuat:
Perintah: rails generate scaffold Game
File yang dibuat:
> 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
Jika kami telah menjalankan migrasi setelah ini, maka kami harus mengembalikan migrasi terlebih dahulu karena penghapusan scaffold juga akan menghapus file migrasi dan kami tidak akan dapat mengembalikan migrasi itu.
Jika kami telah menjalankan migrasi:
rake db:rollback
dan setelah ini kita dapat menghapus scaffold dengan aman oleh commad ini.
rails d scaffold Game
Perintah ini akan menghapus semua file yang dibuat oleh perancah di proyek Anda.
Kasus 1: Jika Anda hanya menjalankan perintah ini untuk menghasilkan perancah -
rails generate scaffold MODEL_NAME FIELD_NAME:DATATYPE
Ex - rails generate scaffold User name:string address:text
tetapi sampai sekarang Anda tidak menjalankan perintah apa pun untuk migrasi seperti
rake db:migrate
maka Anda harus menjalankan hanya perintah ini seperti -
rails destroy scaffold User name:string address:text
Kasus 2: Jika Anda sudah menjalankan (Scaffold dan Migration) dengan perintah di bawah ini seperti -
rails generate scaffold User name:string address:text
rake db:migrate
Maka Anda harus menjalankan perintah migrasi rollback pertama kemudian hancurkan scaffold seperti di bawah ini -
rake db:rollback
rails destroy scaffold User name:string address:text
Jadi Dengan cara ini, kita bisa membatalkan perancah. Kita juga bisa menggunakan d untuk menghancurkan dan g untuk menghasilkan sebagai jalan pintas.
rails g scaffold MyFoo
untuk menghasilkan dan
rails d scaffold MyFoo
untuk menghapus