模型已经存在时如何运行`rails generate scaffold`?
我是Rails的新手,所以我目前的项目处于一个奇怪的状态。
我生成的第一件事就是一个“电影”模型。 然后我开始更详细地定义它,添加了一些方法等。
我现在意识到我应该用rails generate scaffold
来连接路由,视图,控制器等等。
我试图生成脚手架,但我得到一个错误,说已经存在一个具有相同名称的迁移文件。
现在为我的“电影”创建脚手架的最佳方式是什么? (使用导轨3)
TL; DR : rails g scaffold_controller <name>
尽管您已经有了一个模型,但仍然可以使用rails generate
选项生成必要的控制器和迁移文件。 如果您运行rails generate -h
您可以看到所有可用的选项。
Rails:
controller
generator
helper
integration_test
mailer
migration
model
observer
performance_test
plugin
resource
scaffold
scaffold_controller
session_migration
stylesheets
如果您想为您的模型生成控制器脚手架,请参阅scaffold_controller
。 为了清楚起见,以下是对此的描述:
剔除脚手架控制器及其视图。 传递模型名称,包括CamelCased或under_scored,以及视图列表作为参数。 控制器名称作为型号名称的复数版本检索。
要在模块中创建控制器,请将模型名称指定为类似'parent_module / controller_name'的路径。
这会在应用程序/控制器中生成一个控制器类,并调用助手,模板引擎和测试框架生成器。
要创建资源,您需要使用resource
生成器,并创建迁移,您还可以看到migration
生成器(请参阅所有这些疯狂的模式)。 这些提供了创建缺失文件来构建资源的选项。 或者,你可以运行rails generate scaffold
--skip
选项跳过任何存在的文件:)
我建议花一些时间看看发电机内部的选项。 他们是我感觉不到的东西在书籍等方面非常好,但它们非常方便。
Lee Jarvis
很好的回答,这只是命令,例如; 我们已经有一个名为User的现有模型:
rails g scaffold_controller User
对于使用现有数据库启动Rails应用程序的人来说,有一个名为schema_to_scaffold
的酷宝石来生成脚手架脚本。 它输出:
rails g scaffold users fname:string lname:string bdate:date email:string encrypted_password:string
从您的schema.rb
我们您的重命名的schema.rb.
核实
上一篇: How to run `rails generate scaffold` when the model already exists?