6

我知道我可以調用render方法layout: 'my_layout'來更改控制器方法內的佈局。然而,我的一些控制方法有以下幾種,這樣我可以很容易地渲染JSON還有:控制器的不同佈局與respond_to在軌道中

respond_to do |format| 
    format.html 
    format.json { render json: @cars } 
end 

如何更改format.html佈局?我應該用render layout: 'my_layout'替換format.html嗎?有沒有我可以傳遞給format.html的選項?

回答

9

默認情況下,Rails將使用app/views/layouts/application.html.erb作爲佈局。如果你想使用另一種佈局,創建app/views/layouts/my-new-layout.html.erb然後

在你的控制器的方法:

respond_to do |format| 
    format.html { render layout: 'my-new-layout' } 
    format.json { render json: @cars } 
end 

這裏是Rails的指南中的相關章節:Layouts and Rendering: Options for Render

+0

是有道理的,謝謝 –