32
else
  respond_to do |format|
    format.html { render "tabelle/show" }
  end
end    

我想渲染页面......只有该页面中的代码......而不是在rails上的ruby中添加<head>......布局和<body>字段。我只想在页面 tabelle/show.html.haml 中显示代码的结果

4

4 回答 4

41

你可以这样做:

format.html { render "tabelle/show", :layout => false  } 
于 2013-04-11T12:58:21.847 回答
13

控制器:

layout false, only: [:method_name]

这在您使用 render_to_string 时非常有用

于 2016-07-27T18:28:51.503 回答
8

添加

:layout => false

例子:

render "tabelle/show", :layout => false
于 2013-04-11T12:59:12.010 回答
7

如果您不想指定要使用的视图。

Rails 足够聪明,可以根据您所在的控制器操作知道要使用哪个视图模板。

例如,如果您正在执行 的show操作,则TabellesController不需要render "tabelle/show"在控制器操作中指定,因为 Rails 已经假设并会自动尝试将文件呈现为app/views/tabelles/show.html.erb.

因此,如果您坚持使用所有这些默认值,那么您可以使用以下内容进行渲染,而无需使用典型的布局模板:

def show
  # Other stuff in your Controller Action.

  render layout: false
end

这将自动呈现app/views/tabelles/show.html.erb但没有布局模板。

噪音。

于 2018-01-29T23:35:04.267 回答