2013-08-23 63 views
22

這是一個簡單的問題,但我很好奇:不要創建視圖文件夾在軌道上產生控制器

是否有與通常的發電機配置以關閉視圖文件夾和操作模板的創建方式當你運行一個rails generate controller

我找不到任何地方的選項,代碼here不顯示任何指針。

無論如何,我們可能會在某個時候爲我們的API構建我們自己的控制器/資源生成器,但我很好奇在此期間是否有辦法關閉這種煩惱。

+0

只是在生成控制器時不要添加任何操作。 – veritas1

+0

不正確 - 它仍然會創建一個空文件夾。我不想進入Views。 –

+0

爲什麼不只是手動製作你將需要的控制器文件和燈具/測試文件?或者只是'rm -r'生成的視圖目錄?你是否一次或者以編程方式調用'rails generate controller'? – cmpolis

回答

34

這不是一個很好的記錄功能,但嘗試將--skip-template-engine(別名--no-template-engine)選項添加到該命令。

rails generate controller foo bar --skip-template-engine 

演示在一個虛擬的應用程序:

rails g controller my_controller index show --no-template-engine 
     create app/controllers/my_controller_controller.rb 
     route get "my_controller/show" 
     route get "my_controller/index" 
     invoke test_unit 
     create test/functional/my_controller_controller_test.rb 
     invoke helper 
     create app/helpers/my_controller_helper.rb 
     invoke test_unit 
     create  test/unit/helpers/my_controller_helper_test.rb 
     invoke assets 
     invoke coffee 
     create  app/assets/javascripts/my_controller.js.coffee 
     invoke scss 
     create  app/assets/stylesheets/my_controller.css.scss 
+0

+1只是在一個虛擬應用程序中檢查過,完美無瑕。 – rmagnum2002

+0

標記爲已答覆,但它不完全是我要去的。我正在尋找一個簡單的生成器選項來投入application.rb。由於其他原因,我們最終只會編寫我們自己的發電機,但至少我知道在我失蹤的選項中沒有明顯的東西。謝謝! –

+4

同樣使用'--skip-assets'或'--skip-helper'來放棄這些 – babonk

4

只是想我會嘗試凸顯了--skip-模板引擎標誌,看它是否在發電機工作,它的工作魅力!在Rails 4.2應用程序中沒有從bin/rails g controller命令生成視圖模板。

嘗試:

config.generators do |g| 
    g.template_engine false 
end 

有點晚,但我知道這些事情在谷歌留下來! ;)

20

要跳過您的控制器生成的視圖,請禁用模板引擎。

一旦:

rails g controller ControllerName action1 action2 --skip-template-engine 

注意,每--skip選項也有一個別名--no選項。

默認:

# config/application.rb 

config.generators do |g| 
    g.template_engine false 
end 

# OR 

config.generators.template_engine = false 

如果你有一個唯一的API的應用程序(沒有前端),你可能還需要從你的控制器產生跳過資產和助手。

一旦:

rails g controller api/users --no-helper --no-assets --no-template-engine 

默認:

# config/application.rb 

config.generators do |g| 
    g.assets false 
    g.helper false 
    g.template_engine false 
end 

# OR 

config.generators.assets = false 
config.generators.helper = false  
config.generators.template_engine = false 

禁用資產跳過樣式表和的產生 Javascript角。如果你只是想跳過一個,使用--no-stylesheets--no-javascripts,或config/application.rb使用:

config.generators.stylesheets = false 
config.generators.javascripts = false 

如果你的默認配置的產生跳過的東西(如資產和助手),但你需要他們在一種情況下,您可以像這樣生成它們:

rails g controller foo --helper --assets --skip 

其中--skip跳過生成已存在的文件。

+0

感謝您的闡述。很高興知道這些東西中的一些是如何工作的。 –

+0

我使用rails 5,它警告''--template-engine'期望的字符串默認值;得到了假(布爾)',但用'nil'替換'false'工作正常 - 靜默地禁用。 – oklas

+0

config.api_only = true做同樣的工作嗎? – Kaz

0

如果您正在創建一個沒有前端的API,則可以繼續並使用rails new --api。但是,如果您打算創建前端(例如單頁應用),則不建議使用此選項,因爲它會關閉很多功能,包括資產管道。

相關問題