【发布时间】:2012-10-22 17:15:30
【问题描述】:
我使用的是 Rails 3.2,并从一个脚手架开始并从中构建出来,但我意识到我需要重命名整个脚手架(模型、视图、控制器、db:migrate 等)。有没有内置的方法可以做到这一点,还是我应该手动完成?
【问题讨论】:
标签: ruby-on-rails
我使用的是 Rails 3.2,并从一个脚手架开始并从中构建出来,但我意识到我需要重命名整个脚手架(模型、视图、控制器、db:migrate 等)。有没有内置的方法可以做到这一点,还是我应该手动完成?
【问题讨论】:
标签: ruby-on-rails
我不认为rails 提供任何东西来重命名models/controllers/views/tests 等的名称,一旦它们被创建 - 无论是否作为脚手架的一部分。
您必须手动更改它。
如果它是您刚刚开始使用的全新应用程序,则删除整个目录/删除数据库并重新开始可能会更容易。
如果没有,您将不得不检查脚手架生成/修改的文件,并手动修改它们。
确保您要么 drop_and_recreate 相关表,要么添加迁移以重命名表。有关一些相关建议,请参阅How do you write a migration to rename an ActiveRecord model and its table in Rails?。
【讨论】:
No route matches [GET] "/new_name"(复数)和undefined local variable or method new_name_path'`(复数)。我想我需要更新我的路由,但不知道如何。
./config/routes.rb文件中,resources :<old_name_plural>条目应改为resources :<new_name_plural>
我认为没有开箱即用的方法来重命名脚手架生成的文件。你要做的是创建一个新的脚手架并将你的代码从旧的复制到新的。复制工厂、模型、控制器及其中的内容相应的规范文件到新的脚手架。然后用命令移除旧脚手架
rspec d scaffold <Model Name>
并且您必须创建一个新的迁移以从数据库中删除该旧表。然后运行你的迁移。
【讨论】: