3

基本上就是這樣。我希望我的Ruby on Rails 3.1應用程序中的大部分視圖都可以在沒有佈局的情況下呈現,因爲它們將通過jQuery分配給div,但我不想去每個控制器操作並在respond_to塊中設置render :layout => falseRuby on Rails:如何將默認渲染選項:佈局更改爲「false」?

是否可以將默認的視圖渲染更改爲:layout => false?我將如何去配置?

謝謝您的幫助

編輯

我也可以有辦法解決它沿着線的東西:

if request.xhr? 
    format.html { render :layout => false } 
end 

每隔respond_to代碼塊執行。

回答

3
class UserController < ApplicationController 
    layout nil # this sets default layout for all actions in this controller 
end 

如果你想要一些更高級的行爲(如確定德layaout在執行時間),你也可以通過返回零或有效的佈局名稱的塊:

class UserController < ApplicationController 
    layout lambda{ ...your stuff... } 
end 
+0

但第一選擇似乎以純文本的形式離開頁面。我只是想省略layouts/application.html.erb。你可以使用lambda來做到這一點嗎? –

+0

這是因爲你的佈局中有你的stylesheet_link_tag。由於你不包括佈局,你不包括CSS。相反,我會創建一個simplest_layout.html.erb,只有一個頭(包含css和JS)和一個body標籤,然後使用類UserController

+0

Ahhh,課程!謝謝。這似乎是最好的解決方案。那麼':layout => false'命令究竟做了什麼?它是否保留了applicaction.html.erb的頭部和主體?無論如何,我會用你的建議來實現它! –