當模型已經存在時,如何運行`rails generate scaffold`?

我是Rails的新手,因此我目前的項目處於一種奇怪的狀態。 html

我生成的第一件事是「電影」模型。 而後我開始更詳細地定義它,添加了一些方法等。 數據庫

我如今意識到我應該使用rails generate scaffold來生成它,以便鏈接諸如路由,視圖,控制器等的東西。 json

我試圖生成腳手架,但我收到一個錯誤,說已存在同名的遷移文件。 session

如今爲個人「電影」建立腳手架的最佳方式是什麼? (使用導軌3) app


#1樓

對於那些使用現有數據庫啓動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


#2樓

Lee Jarvis回答,這只是命令,例如; 咱們已經有一個名爲User的現有模型: spa

rails g scaffold_controller User

#3樓

這個命令能夠作到這一點: code

$ rails g scaffold movie --skip

#4樓

您可使用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

#5樓

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,以及視圖列表做爲參數。 控制器名稱將做爲模型名稱的複數形式進行檢索。

要在模塊中建立控制器,請將模型名稱指定爲「parent_module / controller_name」之類的路徑。

這會在app / controllers中生成一個控制器類,並調用幫助器,模板引擎和測試框架生成器。

要建立資源,您須要使用resource生成器,並建立遷移,您還能夠看到migration生成器(請參閱,全部這些瘋狂都有一種模式)。 這些提供了建立缺失文件以構建資源的選項。 或者你可使用--skip選項運行rails generate scaffold來跳過任何存在的文件:)

我建議花些時間查看生成器內部的選項。 他們是我認爲在書籍等方面記錄得很是好的東西,但它們很是方便。

相關文章
相關標籤/搜索