控制器的不同布局与Rails中的respond_to

at.*_*at. 6 ruby-on-rails erb ruby-on-rails-3 ruby-on-rails-3.2 ruby-on-rails-4

我知道我可以调用render方法layout: 'my_layout'来改变控制器方法中的布局.但是,我的一些控制器方法具有以下内容,因此我也可以轻松地呈现JSON:

respond_to do |format|
  format.html
  format.json { render json: @cars }
end
Run Code Online (Sandbox Code Playgroud)

如何更改布局format.html?我应该更换format.html使用render layout: 'my_layout'?有没有我可以传递的选项format.html

fra*_*ort 10

默认情况下,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
Run Code Online (Sandbox Code Playgroud)

以下是Rails指南中的相关部分:布局和渲染:渲染选项