Rails'te bir iskele komutunun etkilerini 'geri almanın' bir yolu var mı?
Rails'te bir iskele komutunun etkilerini 'geri almanın' bir yolu var mı?
Yanıtlar:
İlk olarak , scaffold
komut tarafından oluşturulan geçişleri zaten çalıştırdıysanız, önce bir geri alma gerçekleştirmeniz gerekir.
rake db:rollback
Aşağıdakileri kullanarak iskele oluşturabilirsiniz:
rails generate scaffold MyFoo
(veya benzeri) ve geri alma / yok edebilir kullanarak ona
rails destroy scaffold MyFoo
Bu, tarafından oluşturulan tüm dosyaları siler generate
, ancak manuel olarak yapmış olabileceğiniz ek değişiklikleri silmez .
rake db:rollback
Eğer iskele yok önce unutma . İskele önündeki göç dışında başka bir göç yoksa bu tabloyu yok eder / düşürür.
git status
ve / veya kontrol edin git diff
.
Rishav Rastogi haklı ve 3.0 veya daha yüksek raylı:
raylar iskele oluşturur ...
raylar iskele yok ...
rake db:rollback
önce çalışıyorsa rails destroy scaffold
veya komisyon db:migrate:down VERSION=20080906120000
yaptığınız son değilse, isminden önce numarayı db /
Yaptığın her şeyi geri alabilirsin
rails generate xxx
Tarafından
rails destroy xxx
Örneğin bu, jeneratörleri göç, iskele, model ... vb.
Bir jeneratörün oluşturacağı dosyaları görmek istiyorsanız jeneratörü --pretend veya -p seçeneğini geçebilirsiniz.
En iyi yol:
destroy rake db: rake db:rollback
İskele için:
rails destroy scaffold Name_of_script
ilk kez, iskele oluşturduysanız veritabanı geçişini kontrol edebilirsiniz. veritabanını temizlemek için onları yok etmelisin
rake db:rollback
sonra
rails d scaffold
Raylarda iskele oluşturmak için -
rails generate scaffold MODEL_GOES_HERE
Raylardaki iskele geri almak için -
rails destroy scaffold MODEL_GOES_HERE
rails g
ve rails d
.
İskeleyi de tahrip ettikten sonra da göçleri geri almanız gerekiyor
rails destroy scaffold 'scaffoldname'
rake db:rollback
Yani, raylarda iskele geri almak için takip etmelisiniz 4. Komut aşağıdaki gibi çalıştırın:
rails d scaffold FooBar
rake db:rollback
you_had_run_ eğer rake db:migrate
iskele üzerinde oluşturduktan sonra?Bu kadar!
Şerefe!
Geri almayı öner İlk önce Terminalinizi yazın.
rake db:rollback
Yok etme iskelesi ekle ('d' 'yok' anlamına gelir)
rails d scaffold name_of_scaffold
Kodunuzun tadını çıkarın.
Öncelikle yapmanız gerekecektir geri alma: tırmık db tablo yok için
zaten yayınlanmadığını tırmık db: migrate ve sonra çalıştırabilirsiniz
raylar d iskele Modeli
Evet scaffold
kendisi ve onu birleştiren her şey.
destroy
Komut tersidir generate
ve bir geri alır. Sadece aynı şekilde ismini generate
iletin ve projenizden silinecektir:
rails generate scaffold posts title:string content:text
rails destroy scaffold posts title:string content:text
İskele oluşturmak için:
rails generate scaffold abc
Bu iskeleyi geri almak için:
rails destroy scaffold abc
Taşıma işlemini çalıştırdıysanız geri alma
rake db:rollback STEP=1
İskele oluşturduğumuzda, aşağıdaki dosyalar oluşturulacaktır:
Komut: rails generate scaffold Game
Oluşturulan dosyalar:
> 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
Bundan sonra taşımayı gerçekleştirdiysek, iskeleyi silme işlemi de göç dosyasını kaldıracağından ve bu taşımayı geri alamayacağımız için öncelikle taşımayı geri almalıyız.
Göçü çalıştırmamız durumunda:
rake db:rollback
ve bundan sonra bu komutanın iskelesini güvenle kaldırabiliriz.
rails d scaffold Game
Bu komut, projenizdeki iskele tarafından oluşturulan tüm dosyaları kaldırır.
Durum 1: İskele oluşturmak için yalnızca bu komutu çalıştırırsanız -
rails generate scaffold MODEL_NAME FIELD_NAME:DATATYPE
Ex - rails generate scaffold User name:string address:text
ama şu ana kadar göç için herhangi bir komut çalıştırmadınız
rake db:migrate
yalnızca şu komutu çalıştırmanız gerekir -
rails destroy scaffold User name:string address:text
Durum 2: Zaten aşağıdaki gibi komutlarla (İskele ve Geçiş) çalıştırıyorsanız -
rails generate scaffold User name:string address:text
rake db:migrate
Sonra ilk geri alma geçiş komutunu çalıştırmanız ve ardından aşağıdaki gibi iskele yok etmeniz gerekir -
rake db:rollback
rails destroy scaffold User name:string address:text
Böylece bu şekilde iskele sökülebilir. Ayrıca im ve g için d'yi kullanabiliriz için oluşturmak kısayol olarak.
rails g scaffold MyFoo
oluşturmak için ve
rails d scaffold MyFoo
çıkarmak için