2011-11-13 99 views

回答

75
rails g scaffold User --migration=false --skip 

--skip表示跳過已存在的文件。 (相反的是--force。)

如果你不想要幫手,--helpers=false。刪除我的User意見後

輸出示例:

 invoke active_record 
    identical app/models/user.rb 
     invoke test_unit 
    identical  test/unit/user_test.rb 
     skip  test/fixtures/users.yml 
     route resources :users 
     invoke scaffold_controller 
    identical app/controllers/users_controller.rb 
     invoke erb 
     exist  app/views/users 
     create  app/views/users/index.html.erb 
     create  app/views/users/edit.html.erb 
     create  app/views/users/show.html.erb 
     create  app/views/users/new.html.erb 
     create  app/views/users/_form.html.erb 
     invoke test_unit 
    identical  test/functional/users_controller_test.rb 
     invoke helper 
    identical  app/helpers/users_helper.rb 
     invoke  test_unit 
    identical  test/unit/helpers/users_helper_test.rb 
     invoke assets 
     invoke coffee 
    identical  app/assets/javascripts/users.js.coffee 
     invoke scss 
    identical  app/assets/stylesheets/users.css.scss 
     invoke scss 
    identical app/assets/stylesheets/scaffolds.css.scss 
+1

注意:如果您希望生成的視圖具有屬性,您需要在模型之後包含它們,例如用戶名:string email:string等。 – skalb

+0

'--migration = false'是做什麼的? –

+1

@KevinZhao ...不會生成遷移。 –

2

「的另一個工具」 ......

如何能夠做到 「script/generate view_for model_name」? :)

有一個寶石 - View Mapper。它具有Ruby on Rails 2和3版本。

+1

陳舊,過時<3 – bbozo

+2

是的,這是2011年,現在4歲。 –

1

一個小技巧就是加「--no-test-framework」如果使用Rspec的,不希望在規範每個視圖生成的測試文件/視圖

2

我只是遇到同樣的你的問題。我做的。更多細節如下:
- 首先我將views/your_model文件夾重命名爲views/your_model_bak。爲了還原如果失敗後
- 然後,執行命令

rails g scaffold YourModel [field[:type][:index]] --skip 
  • 不要忘記--skip選項,它不會產生存在的文件(在這種情況下,控制器和模型和其他幾個文件)
  • 確保列表[字段[:類型] [:指數]是最新

- 最後,你應該更新您在your_model控制器許可證。

希望它能幫助你。

-1

要在控制器和模型已創建後生成視圖,可以使用命令行。您切換到您要在其中創建新視圖的文件夾。例如:

$ cd name_app/app/views/controller_name 
$ touch name_file 

要返回一個目錄的使用:

$ cd .. 
+1

...?或者只需在編輯器中創建該文件。我沒有看到這是如何特別的幫助文件,它基本上是說「通過創建文件來創建文件」,並且它不會創建所有關聯的Rails-ish文件,只要您在命令行上創建的文件即可。 –

12

這是腳手架發電機內部稱之爲:

rails g erb:scaffold User 

erb是所使用的模板引擎,所以你也可以使用haml:scaffold

您必須明確指定您希望腳手架使用的字段 - 導軌而不是會自動從創建的模型中推導出它們。例如:

rails g erb:scaffold User firstname lastname reputation 

像跳過選項,迫使重寫,和乾燥運行或generate scaffold --help用於特定於生成腳手架信息參見rails g --help

+1

我覺得這實際上是正確的答案。所有其他選項都會生成缺失的內容。這一個只會產生意見。謝謝 :) –

相關問題