首页 文章

在Rails中撤消脚手架

提问于
浏览
472

有没有办法在Rails中“撤消”脚手架命令的效果?

24 回答

  • 1

    每次运行 rails g 时,都可以通过运行 rails d (destroy)来撤消它,以删除您生成的内容 . 如果您已经运行 rake db:migrate ,则需要在销毁之前运行 rake db:rollback :)

  • 744

    First ,如果您已经运行了 scaffold 命令生成的迁移,则必须先执行回滚 .

    rake db:rollback
    

    您可以使用以下方法创建脚手架:

    rails generate scaffold MyFoo
    

    (或类似的),和 you can destroy/undo 它使用

    rails destroy scaffold MyFoo
    

    这将删除 generate 创建的所有文件,但不会删除您手动进行的任何其他更改 .

  • 2

    Rishav Rastogi是正确的,并且使用rails 3.0或更高版本:

    rails generate scaffold ...
    
    rails destroy scaffold ...
    
  • 7

    你可以撤消你做的任何事情

    rails generate xxx
    

    通过

    rails destroy xxx
    

    例如,这将生成器应用于迁移,脚手架,模型等

  • 4

    如果您只想查看生成器将创建的文件,您可以传递生成器--pretend或-p选项 .

  • 1

    最好的方法是:

    destroy rake db:  rake db:rollback
    

    对于脚手架:

    rails destroy scaffold Name_of_script
    
  • 2
    rails d scaffold <scaffoldname>
    

    此外,请确保撤消通过回滚或特定版本进行的迁移 .

  • 10

    第一次,如果您已生成脚手架,则可以检查数据库迁移 . 你必须销毁它们来清理你的数据库

    rake db:rollback
    

    然后

    rails d scaffold
    
  • 4

    要生成脚手架:

    rails generate scaffold xyz
    

    要恢复脚手架:

    rails destroy scaffold xyz
    
  • 40

    Rails破坏名称

    rake db:rollback
    
  • 2

    你也需要在销毁脚手架后回滚迁移

    rails destroy scaffold 'scaffoldname'
    rake db:rollback
    
  • 0

    用于在轨道中生成脚手架 -

    rails generate scaffold MODEL_GOES_HERE
    

    对于在rails中撤消脚手架 -

    rails destroy scaffold MODEL_GOES_HERE
    
  • 1

    因此,您应该按照以下步骤撤消rails中的scaffolding 4.运行Command如下:

    • rails d scaffold FooBar

    • rake db:rollback if you_had_run_ rake db:migrate 创建上述脚手架后?

    而已!

    干杯!

  • 8

    用这个

    rails d scaffold MODEL_NAME
    
    rake db:rollback
    
  • 0

    首先,您必须执行 rake db:rollback 来销毁表格
    如果你已经运行 rake db:migrate 然后你就可以运行了

    rails d scaffold Model

  • 0

    建议回滚首先,输入您的终端 .

    rake db:rollback
    

    添加破坏脚手架('d'代表'破坏')

    rails d scaffold name_of_scaffold
    

    享受你的代码 .

  • 1

    你需要首先通过执行rake db:rollback回滚迁移(如果有的话)然后通过删除脚手架

    rails d scaffold foo
    
  • 13

    当我们生成脚手架时,将创建以下文件:

    命令: 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
    

    如果我们在此之后运行迁移,那么我们必须首先回滚迁移,因为删除scaffold也将删除迁移文件,我们将无法恢复该迁移 .

    如果我们运行了迁移:

    rake db:rollback
    

    在此之后,我们可以通过这个commad安全地移除脚手架 .

    rails d scaffold Game
    

    此命令将删除项目中scaffold创建的所有文件 .

  • 0

    Case 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
    

    Case 2: 如果您已通过以下命令运行(脚手架和移植),例如 -

    rails generate scaffold User name:string address:text
    
    rake db:migrate
    

    然后你应该需要运行第一个rollback migration命令然后破坏脚手架,如下所示 -

    rake db:rollback
    
    rails destroy scaffold User name:string address:text
    

    所以以这种方式,我们可以撤消脚手架 . 我们也可以使用 d 作为 destroyg 作为 generate 作为快捷方式 .

  • 0

    是的, scaffold 本身和所有合并它的东西 .

    destroy 命令与 generate 相反,将撤消一个 . 只需将名称传递给 generate ,就会从项目中删除它:

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

    要生成脚手架:

    rails generate scaffold abc
    

    要恢复此脚手架:

    rails destroy scaffold abc
    

    如果您已为其运行迁移,则只需回滚

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

    用于生成和

    rails d scaffold MyFoo
    

    删除

  • 166

    提供者另一种基于git的解决方案

    开始一个新项目

    rails new project_name
    cd project_name
    

    初始化git

    git init
    git commit -m "initial commit"
    

    创建一个脚手架

    rails g scaffold MyScaffold
    rake db:migrate
    

    回滚脚手架

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

    rails [选项]脚手架scaffold_name

    Option

    g    generate
    d    destroy
    

    如果你这样做

    rails g  scaffold myFoo
    

    然后使用反转它

    rails d scaffold MyFoo
    

相关问题