我是Rails的新手,因此我目前的项目处于一种奇怪的状态。 html
我生成的第一件事是“电影”模型。 而后我开始更详细地定义它,添加了一些方法等。 数据库
我如今意识到我应该使用rails generate scaffold
来生成它,以便链接诸如路由,视图,控制器等的东西。 json
我试图生成脚手架,但我收到一个错误,说已存在同名的迁移文件。 session
如今为个人“电影”建立脚手架的最佳方式是什么? (使用导轨3) app
对于那些使用现有数据库启动rails应用程序的人来讲,有一个很酷的gem,名为schema_to_scaffold
用于生成脚手架脚本。 它输出: 框架
rails g scaffold users fname:string lname:string bdate:date email:string encrypted_password:string
测试
从schema.rb
咱们重命名的schema.rb.
核实 ui
Lee Jarvis
回答,这只是命令,例如; 咱们已经有一个名为User的现有模型: spa
rails g scaffold_controller User
这个命令能够作到这一点: code
$ rails g scaffold movie --skip
您可使用scaffold_controller
并记住传递模型的attributes
,不然将生成没有属性的scaffold。
rails g scaffold_controller User name email # or rails g scaffold_controller User name:string email:string
此命令将生成如下文件:
create app/controllers/users_controller.rb invoke haml create app/views/users create app/views/users/index.html.haml create app/views/users/edit.html.haml create app/views/users/show.html.haml create app/views/users/new.html.haml create app/views/users/_form.html.haml invoke test_unit create test/controllers/users_controller_test.rb invoke helper create app/helpers/users_helper.rb invoke test_unit invoke jbuilder create app/views/users/index.json.jbuilder create app/views/users/show.json.jbuilder
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”之类的路径。
这会在app / controllers中生成一个控制器类,并调用帮助器,模板引擎和测试框架生成器。
要建立资源,您须要使用resource
生成器,并建立迁移,您还能够看到migration
生成器(请参阅,全部这些疯狂都有一种模式)。 这些提供了建立缺失文件以构建资源的选项。 或者你可使用--skip
选项运行rails generate scaffold
来跳过任何存在的文件:)
我建议花些时间查看生成器内部的选项。 他们是我认为在书籍等方面记录得很是好的东西,但它们很是方便。