模型已经存在时,如何运行`rails generate scaffold`?

我是Rails新手,所以我目前的项目处于一个奇怪的状态。

我产生的第一件事就是一个“电影”模型。 然后我开始更详细地定义它,添加了一些方法等

我现在意识到我应该用rails generate scaffold来连接路由,视图,控制器等等。

我试图生成脚手架,但我得到一个错误,说已经存在一个具有相同名称的迁移文件。

现在为我的“电影”创build脚手架的最好方法是什么? (使用导轨3)

TL; DRrails 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,以及视图列表作为参数。 控制器名称是作为型号名称的复数版本检索的。

要在模块中创build控制器,请将模型名称指定为“parent_module / controller_name”之类的path。

这在应用程序/控制器中生成一个控制器类,并调用助手,模板引擎和testing框架生成器。

要创build资源,您需要使用resource生成器,并创build迁移,您还可以看到migration生成器(请参阅这种疯狂的模式)。 这些提供了选项来创build缺less的文件来构build资源。 或者,您可以运行rails generate scaffold--skip选项来跳过任何存在的文件:)

我build议花一些时间看看发电机内的选项。 他们是我不觉得在书籍等方面logging非常好,但他们非常方便。

Lee Jarvis很好的回答,这只是一个命令而已; 我们已经有了一个名为User的现有模型:

 rails g scaffold_controller User 

对于使用现有数据库启动rails应用程序的人来说,有一个名为schema_to_scaffold的酷gem来生成一个脚手架脚本。 它输出:

rails g scaffold users fname:string lname:string bdate:date email:string encrypted_password:string

从您的schema.rb我们您的重命名的schema.rb. 核实

这个命令应该做的伎俩:

 $ rails g scaffold movie --skip 

您可以使用scaffold_controller并记住传递模型的attributes ,否则脚手架将会生成没有属性。

 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