我是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
來跳過任何存在的文件:)
我建議花些時間查看生成器內部的選項。 他們是我認爲在書籍等方面記錄得很是好的東西,但它們很是方便。