2009-06-08 24 views
439

Có cách nào để 'hoàn tác' các hiệu ứng của lệnh giàn giáo trong Rails không?Hoàn tác giàn giáo trong Rails

+4

ray phá hủy giàn giáo xxx –

+0

Trong Rails 5: Tạo giàn giáo với: $ ray tạo giàn giáo . Nếu bạn di chuyển các tệp của mình, hãy thực hiện khôi phục: ** $ rake db: rollback **. Phá hủy hoặc hoàn tác giàn giáo với: $ rails tiêu diệt giàn giáo . Bạn có thể [đọc thêm] (https://kolosek.com/rails-scaffold) về việc này tại –

Trả lời

702

Đầu tiên, nếu bạn đã chạy di chuyển được tạo bởi lệnh scaffold, trước tiên bạn phải thực hiện khôi phục.

rake db:rollback 

Bạn có thể tạo giàn giáo sử dụng:

rails generate scaffold MyFoo 

(hoặc tương tự), và bạn có thể phá hủy/undo nó bằng cách sử

rails destroy scaffold MyFoo 

Đó sẽ xóa tất cả các tập tin được tạo ra bởi generate, nhưng không phải bất kỳ thay đổi bổ sung nào bạn có thể đã thực hiện theo cách thủ công.

+9

đừng quên 'rake db: rollback' trước khi bạn phá hủy giàn giáo của mình. Điều này sẽ phá hủy/thả bảng nếu không có di chuyển khác ngoại trừ di chuyển của giàn giáo trước nó. –

+3

Trong một số trường hợp, vẫn còn các tệp còn sót lại không bị xóa khỏi giàn giáo. Kiểm tra kiểm soát phiên bản của bạn, ví dụ: 'git status' và/hoặc' git diff', để xem lệnh hủy có bỏ sót gì không. –

+0

hoàn hảo, nó hoạt động (y) –

13

Nếu bạn chỉ muốn xem các tệp, trình tạo sẽ tạo, bạn có thể chuyển tùy chọn --pretend hoặc -p.

163

Rishav Rastogi là đúng, và với đường ray 3.0 hoặc cao hơn của nó:

 
rails generate scaffold ... 
 
rails destroy scaffold ... 
+8

@femi Bảng được làm bằng cào.Cách tốt nhất để loại bỏ nó đang chạy 'rake db: rollback' trước khi' rails tiêu diệt scaffold' hoặc nếu nó không phải là cái cuối cùng bạn đã làm rake 'db: migrate: down VERSION = 20080906120000' bạn có thể tìm thấy số trước tên của nó trong db/migrate –

38

Bạn có thể hoàn tác bất cứ điều gì bạn đã làm với

rails generate xxx 

By

rails destroy xxx 

Đối ví dụ này áp dụng máy phát điện cho m igration, giàn giáo, người mẫu ... vv

10

Cách tốt nhất là:

destroy rake db: rake db:rollback 

Đối Scaffold:

rails destroy scaffold Name_of_script 
7

cho lần đầu tiên, bạn có thể kiểm tra xem bạn chuyển đổi cơ sở dữ liệu nếu bạn có tạo giàn giáo. bạn phải tiêu diệt chúng để làm sạch cơ sở dữ liệu của bạn

rake db:rollback 

sau đó

rails d scaffold 
8
rails d scaffold <scaffoldname> 

Ngoài ra, hãy chắc chắn rằng bạn hoàn tác di dân bạn đã thực hiện bằng cách rollback hoặc một phiên bản đặc biệt.

4

Để tạo giàn giáo:

rails generate scaffold xyz 

Để trở lại giàn giáo:

rails destroy scaffold xyz 
1

bạn cần phải rollback di cư đầu tiên bằng cách làm rake db: rollback nếu có Và sau đó tiêu diệt các giàn giáo bằng

rails d scaffold foo 
2

bạn cũng cần phải cuộn lại quá trình di chuyển sau khi hủy g giàn giáo quá

rails destroy scaffold 'scaffoldname' 
rake db:rollback 
2

Đối tạo giàn giáo tại đường ray -

rails generate scaffold MODEL_GOES_HERE 

Đối undo giàn giáo tại đường ray -

rails destroy scaffold MODEL_GOES_HERE 
+1

Ngoài ra các phím tắt 'đường ray g' và' đường ray d'. –

2

Vì vậy, quá trình bạn nên làm theo để hoàn tác giàn giáo tại đường ray 4. Run Lệnh như sau:

  1. rails d scaffold FooBar
  2. rake db:rollback nếu you_had_run_ rake db:migrate sau khi tạo giàn giáo trên?

Vậy đó!

Chúc mừng!

3

Rails phá hủy tên

rake db:rollback 
+1

rollback đầu tiên (nếu bạn di chuyển), sau đó phá hủy giàn giáo – gavit

1

sử dụng này

rails d scaffold MODEL_NAME 

rake db:rollback 
1

Trước tiên, bạn sẽ phải làm các db cào: rollback cho phá hủy bàn
nếu bạn đã chạy rake db : di chuyển và sau đó bạn có thể chạy

đường ray d giàn giáo Kiểu

1

Đề xuất rollback Đầu tiên, hãy nhập Thiết bị đầu cuối của bạn.

rake db:rollback 

Add phá hủy giàn giáo (các 'd' là viết tắt của 'hủy diệt')

rails d scaffold name_of_scaffold 

Thưởng thức mã của bạn.

0

Khi chúng ta tạo giàn giáo, các file sau sẽ được tạo:

Command: rails generate scaffold Game

tập tin được tạo ra:

>  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 

Nếu chúng ta đã chạy di chuyển sau này thì chúng ta phải rollback di chuyển đầu tiên vì việc xóa giàn giáo cũng sẽ xóa tệp di chuyển và chúng tôi sẽ không thể hoàn nguyên quá trình di chuyển đó.

Trong trường hợp chúng tôi đã chạy di cư:

rake db:rollback 

và sau này chúng ta có thể loại bỏ một cách an toàn giàn giáo bằng commad này.

rails d scaffold Game 

Lệnh này sẽ xóa tất cả các tệp được tạo bởi giàn giáo trong dự án của bạn.

0

Bất cứ khi nào bạn chạy rails g, bạn có thể đảo ngược bằng cách chạy rails d (tiêu diệt) để xóa những gì bạn đã tạo. Nếu bạn đã chạy rake db:migrate, bạn sẽ cần phải chạy rake db:rollback trước khi hủy bỏ :)

0

Có chính mình và tất cả những thứ hợp nhất.

Lệnh destroy ngược lại với generate và sẽ hoàn tác một. Chỉ cần vượt qua nó tên giống như cách đã làm với generate và nó sẽ được cọ từ dự án của bạn:

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

Trường hợp 1: Nếu bạn chỉ chạy lệnh này để tạo giàn giáo -

rails generate scaffold MODEL_NAME FIELD_NAME:DATATYPE 

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

nhưng cho đến bây giờ bạn không chạy bất kỳ lệnh nào để di chuyển như

rake db:migrate 

thì bạn chỉ cần chạy lệnh này như -

rails destroy scaffold User name:string address:text 

Trường hợp 2: Nếu bạn đã chạy (Scaffold và Migration) bởi bên dưới lệnh như -

rails generate scaffold User name:string address:text 

rake db:migrate 

Sau đó, bạn nên cần phải chạy lệnh rollback di cư đầu tiên sau đó phá hủy giàn giáo như dưới đây -

rake db:rollback 

rails destroy scaffold User name:string address:text 

Vì vậy, theo cách này, chúng tôi có thể hoàn tác giàn giáo. Ngoài ra, chúng tôi có thể sử dụng d để tiêu diệtg cho tạo làm lối tắt.

0

Để tạo giàn giáo:

rails generate scaffold abc 

Để trở lại giàn giáo này:

rails destroy scaffold abc 

Nếu bạn đã chạy việc di chuyển cho nó chỉ rollback

rake db:rollback STEP=1 
0
rails g scaffold MyFoo 

để tạo ra và

rails d scaffold MyFoo 

để loại bỏ

0

cung cấp giải pháp khác dựa trên git

bắt đầu một dự án mới

rails new project_name 
cd project_name 

khởi git

git init 
git commit -m "initial commit" 

tạo ra một giàn giáo

rails g scaffold MyScaffold 
rake db:migrate 

rollback đoạn đầu đài

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

ray [option] giàn giáo scaffold_name

Lựa chọn

g generate 
d destroy 

Nếu bạn làm

rails g scaffold myFoo 

Sau đó đảo ngược nó trở lại sử dụng

rails d scaffold MyFoo 
Các vấn đề liên quan