【问题标题】:Would I need to undo a "rails generate scaffold" after I undo a "db:migrate"?撤消“db:migrate”后是否需要撤消“rails generate scaffold”?
【发布时间】:2014-06-10 07:51:36
【问题描述】:

我是 RoR 的新手,我正在学习 Michael Hartl 的教程(所以请随时更正我在您认为合适的地方使用的术语)。在第 2 章中,我通过运行这些行创建了一个用户表:

$ rails generate scaffold User name:string email:string
$ bundle exec rake db:migrate

然后,我运行下面的代码来尝试创建一个 Microposts 表(但是,我拼错了没有“r”的 Micropost!)...

$ rails generate scaffold Miropost content:string user_id:integer
$ bundle exec rake db:migrate

现在我想删除我创建的 Miropost 表。在 stackoverflow.com 中搜索后,我知道我可以通过运行 rake db:migrate:reset 撤消数据库迁移(即 db:migrate)。我的问题是我是否也需要撤消“rails generate scaffold”?什么时候脚手架不复存在?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4 rake


    【解决方案1】:

    首先,您需要从 db.xml 回滚更改。 假设为Miropost 生成的迁移是您的db 中的最新迁移。

    直接跑吧

    rake db:rollback ## This will drop the table miroposts
    

    在此之后破坏现有的脚手架:

    rails destroy scaffold Miropost content:string user_id:integer
    

    那么你需要做的就是用正确的拼写重新创建脚手架并运行rake db:migrate

    【讨论】:

    • 谢谢!这就像一个魅力。只是为了我的学业,在你明确销毁之前,脚手架永远不会被删除吗?当rake db:migrate 使用时,它是否总是指最近创建的脚手架?
    • scaffold 只有在您使用rails destroy scaffold... 命令明确删除它时才会被删除。 rake db:migrate 将迁移 db/migrate 文件夹中的所有挂起迁移。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-06
    • 2013-07-01
    • 2021-06-01
    相关资源
    最近更新 更多