2011-04-10 114 views
44

有沒有一種方法來生成單獨使用軌道生成命令的意見?我也願意安裝寶石來完成這個任務。基本上,腳手架命令給我太多了,我寧願手工編寫我的控制器。但是,用記錄表編寫索引視圖效率不高。Ruby on Rails的生成視圖

+0

因爲它是一個大桌子不少欄寫的是手工似乎打敗一些軌道發電機的目的 – 2011-04-10 19:23:42

+2

http://stackoverflow.com/questions/8114866/create-rails-views-only-after-controllers-and-models-are-already-created的可能的複製 - 您的問題可以被理解爲你想只* *要生成的視圖,而不觸及任何已經存在的,下面的答案實際上不會實現的答案。 – sameers 2014-02-03 05:48:12

回答

69

如果您使用的控制器生成,這將產生控制器動作和視圖。

rails g controller controllername new create 

這會創建新行爲並創建具有相關視圖的操作。

您仍然需要手動設置你的路由與此有關。

+0

如何指定模型/控制器來生成視圖? – Noz 2012-08-01 18:49:45

+0

控制器生成視圖。 'rails g controller page about contact'會創建文件'controllers/pages_controller.rb','views/pages/about.html.erb','views/pages/contact.html.erb' – Gazler 2012-08-01 20:01:41

+5

如果我只想添加一個動作到現有的控制器,並希望自動創建視圖頁面 – 2013-06-07 11:49:56

2

第一部分是模型/控制器的名稱,所述第二部分是所述操作。

0

一個特殊情況是,當你想要一個視圖添加到現有的控制器。

在這種情況下,只需使用常規的命令,但要謹慎地說,爲了不覆蓋現有文件'n'每一次提示。

例如,添加視圖稱爲'invite'名爲'projects'現有控制器:

[email protected]:~/railsapps/project_manager$ rails -v 
Rails 5.1.4 
[email protected]:~/railsapps/project_manager$ rails generate controller projects invite 
Running via Spring preloader in process 46253 
    conflict app/controllers/projects_controller.rb 
Overwrite /home/smith/railsapps/project_manager/app/controllers/projects_controller.rb? (enter "h" for help) [Ynaqdh] n 
     skip app/controllers/projects_controller.rb 
     route get 'projects/invite' 
     invoke erb 
     exist app/views/projects 
     create app/views/projects/invite.html.erb 
     invoke test_unit 
    conflict test/controllers/projects_controller_test.rb 
    Overwrite /home/smith/railsapps/project_manager/test/controllers/projects_controller_test.rb? (enter "h" for help) [Ynaqdh] n 
     skip test/controllers/projects_controller_test.rb 
     invoke helper 
    identical app/helpers/projects_helper.rb 
     invoke test_unit 
     invoke assets 
     invoke coffee 
    identical  app/assets/javascripts/projects.coffee 
     invoke scss 
    conflict  app/assets/stylesheets/projects.scss 
    Overwrite /home/smith/railsapps/project_manager/app/assets/stylesheets/projects.scss? (enter "h" for help) [Ynaqdh] n 
     skip  app/assets/stylesheets/projects.scss 
[email protected]:~/railsapps/project_manager$