【问题标题】:jbuilder view renders with layoutjbuilder 视图呈现与布局
【发布时间】:2018-06-18 17:08:58
【问题描述】:

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

对于 json,我使用 jbuilder 视图。

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

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

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

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

【问题讨论】:

  • 为什么不使用简单的 if ? if 条件渲染 json 和布局 false elsif ...

标签: ruby-on-rails jbuilder


【解决方案1】:

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

【讨论】:

  • 天哪,这太棒了!离合器
  • 天哪,谢谢!多年来我一直不明白为什么我的应用程序有时会为format.js { ... } 呈现布局,而有时却不会。结果发现我们的其中一个布局名称中缺少.html 部分。
【解决方案2】:

看看这个:

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

【讨论】:

    猜你喜欢
    • 2013-01-05
    • 1970-01-01
    • 2016-06-22
    • 1970-01-01
    • 2012-12-31
    • 2014-08-18
    • 1970-01-01
    • 1970-01-01
    • 2012-01-01
    相关资源
    最近更新 更多