jbuilder 视图呈现布局

jbuilder view renders with layout

我有一个控制器,有时会呈现 html,有时会呈现 json。

对于 json 我使用 jbuilder 视图。

有一个默认的 html 布局,由于某些未知原因,它也开始为 json 视图呈现。

我找到了 2 个解决问题的选项

  1. 使用 json 视图将 layout:false 添加到渲染调用中
  2. 调用局部渲染而不是常规渲染。

我只是想知道(因为几天前它没有渲染布局) 有没有办法告诉 rails 只为 html 请求格式呈现布局?

看看这个:

respond_to do |format|
   format.html { render 'something.html.erb'}
   format.json { render json: @next_level.to_json ,layout: false}
end

显然,如果您的布局文件名没有 .html,它将用于所有请求类型。我的布局文件是 x.erb 将其更改为 x.html.erb 解决了这个问题。